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