Issue with Latest GDB on AIX with GCC-6.12

Pedro Alves
Tue Jan 31 13:09:00 GMT 2017

On 01/29/2017 01:11 AM, David Edelsohn wrote:

> Note that std::terminate() is called specifically because there was an
> unwind failure and no handler was found in in libsupc++
> (part of libstdc++).

Right, that's what makes it look like either an runtime unwinder,
or unwind info bug.

> Is this code trying to propagate an exception through a signal
> handler, in which case GCC MD_FALLBACK_FRAME_STATE_FOR needs to be
> tweaked to find more AIX kernel signal handler signatures.

Nope, it's just normal C++ frames all the way from the throw to
the "catch" that should catch the exception.

(GDB stopped throwing from signal handlers before we flipped
the C++ switch, with:
 [PATCH 00/30] Stop throwing exceptions from signal handlers

I'd suggest progressively hacking in "catches" to frames
closer to the throw in question helps identify the frame that
can't be unwound.  Like, sprinkling in a few:

catch (...)
    printf ("%s:%d: got here\n", __FILE__, __LINE__)

Pedro Alves

More information about the Gdb mailing list