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".
+2012-10-24 Joel Brobecker <brobecker@adacore.com>
+
+ * ada-lang.h (ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS): Add entry for
+ "unwind-seh.c".
+
2012-10-24 Joel Brobecker <brobecker@adacore.com>
* ada-lang.c (ada_template_to_fixed_record_type_1): Do not
#if !defined (ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS)
#define ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS \
+ "^unwind-seh.c$", \
"^[agis]-.*\\.ad[bs]$",
#endif