killerbot: the idea is to stop when the exception is thrown. So the user can inspect the reason for the throw (there is a checkbox in the settings to disable this feature).
MaxGaspa:
1. Hm, it seems that it doesn't work on windows (the regex doesn't match)
Here is a patch that should fix the problem.
Index: src/plugins/debuggergdb/gdb_driver.cpp
===================================================================
--- src/plugins/debuggergdb/gdb_driver.cpp (revision 6564)
+++ src/plugins/debuggergdb/gdb_driver.cpp (working copy)
@@ -52,6 +52,8 @@
static wxRegEx reBreak3(_T("^(0x[A-Fa-f0-9]+) in (.*)"));
// Catchpoint 1 (exception thrown), 0x00007ffff7b982b0 in __cxa_throw () from /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.4/libstdc++.so.6
static wxRegEx reCatchThrow(_T("^Catchpoint ([0-9]+) \\(exception thrown\\), (0x[0-9a-f]+) in (.+) from (.+)$"));
+// Catchpoint 1 (exception thrown), 0x00401610 in __cxa_throw ()
+static wxRegEx reCatchThrowNoFile(_T("^Catchpoint ([0-9]+) \\(exception thrown\\), (0x[0-9a-f]+) in (.+)$"));
// easily match cygwin paths
//static wxRegEx reCygwin(_T("/cygdrive/([A-Za-z])/"));
@@ -1097,6 +1099,15 @@
m_Cursor.changed = true;
m_needsUpdate = true;
}
+ else if (reCatchThrowNoFile.Matches(lines[i]) )
+ {
+ m_Cursor.file = wxEmptyString;
+ m_Cursor.function= reCatchThrowNoFile.GetMatch(lines[i], 3);
+ m_Cursor.address = reCatchThrowNoFile.GetMatch(lines[i], 2);
+ m_Cursor.line = -1;
+ m_Cursor.changed = true;
+ m_needsUpdate = true;
+ }
}
}
buffer.Clear();
2. Yes it will be merged with trunk, but it should be tested a bit more.
Thanks for the report
