diff options
author | Sven Hesse | 2011-08-26 11:49:44 +0200 |
---|---|---|
committer | Sven Hesse | 2011-08-26 11:50:37 +0200 |
commit | 5bcb89852fadb3f5716a52b467a229dda5fed347 (patch) | |
tree | 25f63150c6809dcc217844aa2471f8b593e4aa94 /engines | |
parent | 21fd6a2e90d655c47f1e69672ac65fd29b235fd8 (diff) | |
download | scummvm-rg350-5bcb89852fadb3f5716a52b467a229dda5fed347.tar.gz scummvm-rg350-5bcb89852fadb3f5716a52b467a229dda5fed347.tar.bz2 scummvm-rg350-5bcb89852fadb3f5716a52b467a229dda5fed347.zip |
GOB: Add a console command to dump the whole variable space
Diffstat (limited to 'engines')
-rw-r--r-- | engines/gob/console.cpp | 18 | ||||
-rw-r--r-- | engines/gob/console.h | 1 |
2 files changed, 19 insertions, 0 deletions
diff --git a/engines/gob/console.cpp b/engines/gob/console.cpp index b8aed37727..e7296fb81b 100644 --- a/engines/gob/console.cpp +++ b/engines/gob/console.cpp @@ -29,6 +29,7 @@ namespace Gob { GobConsole::GobConsole(GobEngine *vm) : GUI::Debugger(), _vm(vm) { DCmd_Register("varSize", WRAP_METHOD(GobConsole, cmd_varSize)); + DCmd_Register("dumpVars", WRAP_METHOD(GobConsole, cmd_dumpVars)); DCmd_Register("var8", WRAP_METHOD(GobConsole, cmd_var8)); DCmd_Register("var16", WRAP_METHOD(GobConsole, cmd_var16)); DCmd_Register("var32", WRAP_METHOD(GobConsole, cmd_var32)); @@ -44,6 +45,23 @@ bool GobConsole::cmd_varSize(int argc, const char **argv) { return true; } +bool GobConsole::cmd_dumpVars(int argc, const char **argv) { + if (!_vm->_inter->_variables) + return true; + + Common::DumpFile file; + + if (!file.open("variables.dmp")) + return true; + + file.write(_vm->_inter->_variables->getAddressOff8(0), _vm->_inter->_variables->getSize()); + + file.flush(); + file.close(); + + return true; +} + bool GobConsole::cmd_var8(int argc, const char **argv) { if (argc == 1) { DebugPrintf("Usage: var8 <var offset> (<value>)\n"); diff --git a/engines/gob/console.h b/engines/gob/console.h index b9f9b81d0e..b9c3f5ed70 100644 --- a/engines/gob/console.h +++ b/engines/gob/console.h @@ -38,6 +38,7 @@ private: GobEngine *_vm; bool cmd_varSize(int argc, const char **argv); + bool cmd_dumpVars(int argc, const char **argv); bool cmd_var8(int argc, const char **argv); bool cmd_var16(int argc, const char **argv); bool cmd_var32(int argc, const char **argv); |