[Ada] Skip unwind-seh.c when searching first "user" frame
authorJoel Brobecker <brobecker@gnat.com>
Wed, 24 Oct 2012 18:08:05 +0000 (18:08 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Wed, 24 Oct 2012 18:08:05 +0000 (18:08 +0000)
commit5a04cc987f921c041f358e0b2a7390ba7dcd1aa1
tree75578aa7918788e967364d05a8e1ee48250980d3
parent5ded533171a924509f15f951c50d54d5c56389ca
[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".
gdb/ChangeLog
gdb/ada-lang.h