summaryrefslogtreecommitdiff
path: root/gdb/ada-lang.h
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2012-10-24 18:08:04 +0000
committerJoel Brobecker <brobecker@gnat.com>2012-10-24 18:08:04 +0000
commit31337e61a3a460b806281db79bdf05ad4660e43e (patch)
tree4cd8b03f17a5851da1e959fe26288be4f6876624 /gdb/ada-lang.h
parent997d8e5e5fcaf31fda4d34c5e0facdadf3875208 (diff)
downloadgdb-31337e61a3a460b806281db79bdf05ad4660e43e.tar.gz
[Ada] Skip unwind-seh.c when searching first "user" frame
On x86_64-windows with GCC 4.7 (using native SEH info), the debugger behaves as follow: (gdb) catch exception unhandled Catchpoint 1: unhandled Ada exceptions (gdb) run Starting program: C:\[...]\b.exe Catchpoint 1, unhandled CONSTRAINT_ERROR at 0x000000000040cc57 in _GCC_specific_handler ([...]) at ../../../src/libgcc/unwind-seh.c:289 [...] This is after compiler the following code: procedure B is begin raise Constraint_Error; end B; ... using the following command: % gnatmake -g b When hitting the exception catchpoint, it should have gone up the stack all the way until finding the frame corresponding to procedure B. But if stopped short because unwind-seh.c is compiled with debugging information, and the debugger is also able to locate that source file. To prevent this from happening, this patch adds unwind-seh.c to the list of files that should be ignored, regardless of other factors. gdb/ChangeLog: * ada-lang.h (ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS): Add entry for "unwind-seh.c".
Diffstat (limited to 'gdb/ada-lang.h')
-rw-r--r--gdb/ada-lang.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/gdb/ada-lang.h b/gdb/ada-lang.h
index 9a93c50dfff..b56d4538188 100644
--- a/gdb/ada-lang.h
+++ b/gdb/ada-lang.h
@@ -45,6 +45,7 @@ struct inferior;
#if !defined (ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS)
#define ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS \
+ "^unwind-seh.c$", \
"^[agis]-.*\\.ad[bs]$",
#endif