aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--simon/simon.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/simon/simon.cpp b/simon/simon.cpp
index 6614ceda4b..7d720566e2 100644
--- a/simon/simon.cpp
+++ b/simon/simon.cpp
@@ -755,6 +755,14 @@ SimonEngine::~SimonEngine() {
void SimonEngine::errorString(const char *buf1, char *buf2) {
strcpy(buf2, buf1);
+
+ // Unless an error -originated- within the debugger, spawn the debugger. Otherwise
+ // exit out normally.
+ if (_debugger && !_debugger->isAttached()) {
+ printf("%s\n", buf2); // (Print it again in case debugger segfaults)
+ _debugger->attach(buf2);
+ _debugger->onFrame();
+ }
}
void palette_fadeout(uint32 *pal_values, uint num) {