[Scummvm-cvs-logs] CVS: scummvm/scumm debugger.cpp,1.21,1.22 debugger.h,1.13,1.14 scummvm.cpp,2.95,2.96
James Brown
ender at users.sourceforge.net
Sun Apr 20 09:26:08 CEST 2003
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv3001/scumm
Modified Files:
debugger.cpp debugger.h scummvm.cpp
Log Message:
Dump Scumm error() to debugger
Index: debugger.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/debugger.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- debugger.cpp 20 Apr 2003 14:28:25 -0000 1.21
+++ debugger.cpp 20 Apr 2003 16:25:48 -0000 1.22
@@ -48,9 +48,12 @@
}
// Initialisation Functions
-void ScummDebugger::attach(Scumm *s) {
+void ScummDebugger::attach(Scumm *s, char *entry) {
if (_s)
detach();
+
+ if (entry)
+ errStr = strdup(entry);
_s = s;
s->_debugger = this;
@@ -161,7 +164,14 @@
#ifdef USE_CONSOLE
if (!_s->_debuggerDialog) {
_s->_debuggerDialog = new ConsoleDialog(_s->_newgui, _s->_realWidth);
+
Debug_Printf("Debugger started, type 'exit' to return to the game\n");
+ }
+
+ if (errStr) {
+ Debug_Printf("ERROR: %s\n\n", errStr);
+ free(errStr);
+ errStr = NULL;
}
_s->_debuggerDialog->setInputeCallback(debuggerInputCallback, this);
Index: debugger.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/debugger.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- debugger.h 20 Apr 2003 06:55:09 -0000 1.13
+++ debugger.h 20 Apr 2003 16:25:48 -0000 1.14
@@ -51,7 +51,7 @@
ScummDebugger();
void on_frame();
- void attach(Scumm *s);
+ void attach(Scumm *s, char *entry);
protected:
Scumm *_s;
@@ -59,6 +59,7 @@
DVar _dvars[256];
DCmd _dcmds[256];
bool _detach_now;
+ char *errStr;
void enter();
void detach();
Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scummvm.cpp,v
retrieving revision 2.95
retrieving revision 2.96
diff -u -d -r2.95 -r2.96
--- scummvm.cpp 20 Apr 2003 08:04:27 -0000 2.95
+++ scummvm.cpp 20 Apr 2003 16:25:48 -0000 2.96
@@ -1400,7 +1400,7 @@
_vars[VAR_CHARINC] = _defaultTalkDelay / 20;
} else if (_lastKeyHit == '~' || _lastKeyHit == '#') { // Debug console
- g_debugger.attach(this);
+ g_debugger.attach(this, NULL);
}
_mouseButStat = _lastKeyHit;
@@ -1591,6 +1591,15 @@
} else {
strcpy(buf2, buf1);
}
+
+ // Unless an error -originated- within the debugger, spawn the debugger. Otherwise
+ // exit out normally.
+ if (!_debugger) {
+ printf("%s", buf2); // (Print it again in-case debugger segfaults)
+ g_debugger.attach(this, buf2);
+ g_debugger.on_frame();
+ }
+
}
void Scumm::waitForTimer(int msec_delay) {
@@ -1638,7 +1647,7 @@
else if (event.kbd.keycode == 'g')
_fastMode ^= 2;
else if ((event.kbd.keycode == 'd') && (!_system->property(OSystem::PROP_GET_FULLSCREEN, 0)))
- g_debugger.attach(this);
+ g_debugger.attach(this, NULL);
else if (event.kbd.keycode == 's')
resourceStats();
else
More information about the Scummvm-git-logs
mailing list