| 454 | } |
| 455 | |
| 456 | void TelnetDebugger::processLineBuffer(S32 cmdLen) |
| 457 | { |
| 458 | if (mState == PasswordTry) |
| 459 | { |
| 460 | if(dStrncmp(mLineBuffer, mDebuggerPassword, cmdLen-1)) |
| 461 | { |
| 462 | // failed password: |
| 463 | send("PASS WrongPassword.\r\n"); |
| 464 | disconnect(); |
| 465 | } |
| 466 | else |
| 467 | { |
| 468 | send("PASS Connected.\r\n"); |
| 469 | mState = mWaitForClient ? Initialize : Connected; |
| 470 | } |
| 471 | |
| 472 | return; |
| 473 | } |
| 474 | else |
| 475 | { |
| 476 | char evalBuffer[MaxCommandSize]; |
| 477 | char varBuffer[MaxCommandSize]; |
| 478 | char fileBuffer[MaxCommandSize]; |
| 479 | char clear[MaxCommandSize]; |
| 480 | S32 passCount, line, frame; |
| 481 | |
| 482 | if(dSscanf(mLineBuffer, "CEVAL %[^\n]", evalBuffer) == 1) |
| 483 | { |
| 484 | ConsoleEvent postEvent; |
| 485 | dStrcpy(postEvent.data, evalBuffer); |
| 486 | postEvent.size = ConsoleEventHeaderSize + dStrlen(evalBuffer) + 1; |
| 487 | Game->postEvent(postEvent); |
| 488 | } |
| 489 | else if(dSscanf(mLineBuffer, "BRKVARSET %s %d %[^\n]", varBuffer, &passCount, evalBuffer) == 3) |
| 490 | addVariableBreakpoint(varBuffer, passCount, evalBuffer); |
| 491 | else if(dSscanf(mLineBuffer, "BRKVARCLR %s", varBuffer) == 1) |
| 492 | removeVariableBreakpoint(varBuffer); |
| 493 | else if(dSscanf(mLineBuffer, "BRKSET %s %d %s %d %[^\n]", fileBuffer,&line,&clear,&passCount,evalBuffer) == 5) |
| 494 | addBreakpoint(fileBuffer, line, dAtob(clear), passCount, evalBuffer); |
| 495 | else if(dSscanf(mLineBuffer, "BRKCLR %s %d", fileBuffer, &line) == 2) |
| 496 | removeBreakpoint(fileBuffer, line); |
| 497 | else if(!dStrncmp(mLineBuffer, "BRKCLRALL\n", cmdLen)) |
| 498 | removeAllBreakpoints(); |
| 499 | else if(!dStrncmp(mLineBuffer, "BRKNEXT\n", cmdLen)) |
| 500 | debugBreakNext(); |
| 501 | else if(!dStrncmp(mLineBuffer, "CONTINUE\n", cmdLen)) |
| 502 | debugContinue(); |
| 503 | else if(!dStrncmp(mLineBuffer, "STEPIN\n", cmdLen)) |
| 504 | debugStepIn(); |
| 505 | else if(!dStrncmp(mLineBuffer, "STEPOVER\n", cmdLen)) |
| 506 | debugStepOver(); |
| 507 | else if(!dStrncmp(mLineBuffer, "STEPOUT\n", cmdLen)) |
| 508 | debugStepOut(); |
| 509 | else if(dSscanf(mLineBuffer, "EVAL %s %d %[^\n]", varBuffer, &frame, evalBuffer) == 3) |
| 510 | evaluateExpression(varBuffer, frame, evalBuffer); |
| 511 | else if(!dStrncmp(mLineBuffer, "FILELIST\n", cmdLen)) |
| 512 | dumpFileList(); |
| 513 | else if(dSscanf(mLineBuffer, "BREAKLIST %s", fileBuffer) == 1) |