diff options
author | Martin Kiewitz | 2010-06-28 07:42:16 +0000 |
---|---|---|
committer | Martin Kiewitz | 2010-06-28 07:42:16 +0000 |
commit | 31af2bfe32429563563d5beaa320a23fc035ad71 (patch) | |
tree | d7bd8c4576aa676f9ceebdcfabc84d63f4b7fd1a /engines/sci | |
parent | 76b8c33aaf964dab911b00e616e7800110dd780c (diff) | |
download | scummvm-rg350-31af2bfe32429563563d5beaa320a23fc035ad71.tar.gz scummvm-rg350-31af2bfe32429563563d5beaa320a23fc035ad71.tar.bz2 scummvm-rg350-31af2bfe32429563563d5beaa320a23fc035ad71.zip |
SCI: show arguments on selector invoke breakpoint even when VM_DEBUG_SEND is not used, but in a compressed fashion
svn-id: r50410
Diffstat (limited to 'engines/sci')
-rw-r--r-- | engines/sci/engine/vm.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/engines/sci/engine/vm.cpp b/engines/sci/engine/vm.cpp index d819db3d08..35f9baef7b 100644 --- a/engines/sci/engine/vm.cpp +++ b/engines/sci/engine/vm.cpp @@ -620,7 +620,28 @@ ExecStack *send_selector(EngineState *s, reg_t send_obj, reg_t work_obj, StackPt printf(") at %04x:%04x\n", PRINT_REG(funcp)); #endif // VM_DEBUG_SEND if (printSendActions) { - debug("[invoke selector]\n"); + printf("[invoke selector]"); +#ifndef VM_DEBUG_SEND + int displaySize = 0; + for (int argNr = 1; argNr <= argc; argNr++) { + if (argNr == 1) + printf(" - "); + reg_t curParam = argp[argNr]; + if (curParam.segment) { + printf("[%04x:%04x] ", PRINT_REG(curParam)); + displaySize += 12; + } else { + printf("[%04x] ", curParam.offset); + displaySize += 7; + } + if (displaySize > 50) { + if (argNr < argc) + printf("..."); + break; + } + } +#endif + printf("\n"); printSendActions = false; } |