SCI: Fix stepping in debugger

svn-id: r42587
This commit is contained in:
Willem Jan Palenstijn 2009-07-18 12:51:12 +00:00
parent 6235f9e176
commit a1bb715611
5 changed files with 45 additions and 18 deletions

View file

@ -194,6 +194,7 @@ Console::Console(SciEngine *vm) : GUI::Debugger() {
scriptState.seekLevel = 0;
scriptState.runningStep = 0;
scriptState.stopOnEvent = false;
scriptState.debugging = false;
}
Console::~Console() {
@ -2098,21 +2099,24 @@ bool Console::cmdBacktrace(int argc, const char **argv) {
bool Console::cmdStep(int argc, const char **argv) {
if (argc == 2 && atoi(argv[1]) > 0)
scriptState.runningStep = atoi(argv[1]) - 1;
scriptState.debugging = true;
return true;
return false;
}
bool Console::cmdStepEvent(int argc, const char **argv) {
scriptState.stopOnEvent = true;
scriptState.debugging = true;
return true;
return false;
}
bool Console::cmdStepRet(int argc, const char **argv) {
scriptState.seeking = kDebugSeekLevelRet;
scriptState.seekLevel = _vm->_gamestate->_executionStack.size() - 1;
scriptState.debugging = true;
return true;
return false;
}
bool Console::cmdStepGlobal(int argc, const char **argv) {
@ -2124,8 +2128,9 @@ bool Console::cmdStepGlobal(int argc, const char **argv) {
scriptState.seeking = kDebugSeekGlobal;
scriptState.seekSpecial = atoi(argv[1]);
scriptState.debugging = true;
return true;
return false;
}
bool Console::cmdStepCallk(int argc, const char **argv) {
@ -2156,8 +2161,9 @@ bool Console::cmdStepCallk(int argc, const char **argv) {
} else {
scriptState.seeking = kDebugSeekCallk;
}
scriptState.debugging = true;
return true;
return false;
}
bool Console::cmdDissassemble(int argc, const char **argv) {
@ -2322,14 +2328,16 @@ bool Console::cmdSend(int argc, const char **argv) {
xstack->fp += argc;
_vm->_gamestate->_executionStackPosChanged = true;
scriptState.debugging = true;
return true;
return false;
}
bool Console::cmdGo(int argc, const char **argv) {
// CHECKME: is this necessary?
scriptState.seeking = kDebugSeekNothing;
return true;
return Cmd_Exit(argc, argv);
}
bool Console::cmdBreakpointList(int argc, const char **argv) {