| 496 | } |
| 497 | |
| 498 | void TelnetDebugger::processLineBuffer(S32 cmdLen) |
| 499 | { |
| 500 | if (mState == PasswordTry) |
| 501 | { |
| 502 | if(dStrncmp(mLineBuffer, mDebuggerPassword, cmdLen-1)) |
| 503 | { |
| 504 | // failed password: |
| 505 | send("PASS WrongPassword.\r\n"); |
| 506 | disconnect(); |
| 507 | } |
| 508 | else |
| 509 | { |
| 510 | send("PASS Connected.\r\n"); |
| 511 | mState = mWaitForClient ? Initialize : Connected; |
| 512 | } |
| 513 | |
| 514 | return; |
| 515 | } |
| 516 | else |
| 517 | { |
| 518 | char evalBuffer[MaxCommandSize]; |
| 519 | char varBuffer[MaxCommandSize]; |
| 520 | char fileBuffer[MaxCommandSize]; |
| 521 | char clear[MaxCommandSize]; |
| 522 | S32 passCount, line, frame; |
| 523 | |
| 524 | if(dSscanf(mLineBuffer, "CEVAL %[^\n]", evalBuffer) == 1) |
| 525 | { |
| 526 | RawData rd; |
| 527 | rd.size = dStrlen(evalBuffer) + 1; |
| 528 | rd.data = ( S8* ) evalBuffer; |
| 529 | Con::smConsoleInput.trigger(rd); |
| 530 | } |
| 531 | else if(dSscanf(mLineBuffer, "BRKVARSET %s %d %[^\n]", varBuffer, &passCount, evalBuffer) == 3) |
| 532 | addVariableBreakpoint(varBuffer, passCount, evalBuffer); |
| 533 | else if(dSscanf(mLineBuffer, "BRKVARCLR %s", varBuffer) == 1) |
| 534 | removeVariableBreakpoint(varBuffer); |
| 535 | else if(dSscanf(mLineBuffer, "BRKSET %s %d %s %d %[^\n]", fileBuffer,&line,&clear,&passCount,evalBuffer) == 5) |
| 536 | addBreakpoint(fileBuffer, line, dAtob(clear), passCount, evalBuffer); |
| 537 | else if(dSscanf(mLineBuffer, "BRKCLR %s %d", fileBuffer, &line) == 2) |
| 538 | removeBreakpoint(fileBuffer, line); |
| 539 | else if(!dStrncmp(mLineBuffer, "BRKCLRALL\n", cmdLen)) |
| 540 | removeAllBreakpoints(); |
| 541 | else if(!dStrncmp(mLineBuffer, "BRKNEXT\n", cmdLen)) |
| 542 | debugBreakNext(); |
| 543 | else if(!dStrncmp(mLineBuffer, "CONTINUE\n", cmdLen)) |
| 544 | debugContinue(); |
| 545 | else if(!dStrncmp(mLineBuffer, "STEPIN\n", cmdLen)) |
| 546 | debugStepIn(); |
| 547 | else if(!dStrncmp(mLineBuffer, "STEPOVER\n", cmdLen)) |
| 548 | debugStepOver(); |
| 549 | else if(!dStrncmp(mLineBuffer, "STEPOUT\n", cmdLen)) |
| 550 | debugStepOut(); |
| 551 | else if(dSscanf(mLineBuffer, "EVAL %s %d %[^\n]", varBuffer, &frame, evalBuffer) == 3) |
| 552 | evaluateExpression(varBuffer, frame, evalBuffer); |
| 553 | else if(!dStrncmp(mLineBuffer, "FILELIST\n", cmdLen)) |
| 554 | dumpFileList(); |
| 555 | else if(dSscanf(mLineBuffer, "BREAKLIST %s", fileBuffer) == 1) |