GDB: Get useful stack trace after uncaught C++ exception

0

I have a C++ program, running on Linux. It appears that if an uncaught exception occurs, the default action is to send SIGABRT to the process, which (by default) terminates the process. I have crash dumps set up; some random end-user sends me the crash dump. I load the dump, load up my symbols, ask for a stack trace, and get... this:

>>> bt
#0  0xf7770e39 in ?? ()
#1  0x00000000 in ?? ()

Obviously, this tells me nothing.

How to unconditionally force GDB to tell me what actually went wrong??

I presume what happens here is an exception is thrown, the entire stack slowly gets unwound, until eventually when the exception reaches the top, it runs some code to send SIGABRT (and that code is presumably all that's left on the stack). Is there anything I can do to get at the data telling me what exception was thrown or where it was thrown from? Without this information, the customer's issue is basically unfixable.

c++
exception
gdb
stack-trace

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0