Unable to break on exception

Started by
-1 comments, last by Servant of the Lord 11 years, 1 month ago

My program was throwing an exception (std::exception: :map::at")

I use MinGW 4.7.2

I can't seem to break where the exception is being thrown to get the stacktrace. I can break where it's caught, but that doesn't get me a stacktrace.

I normally use QtCreator's GUI interface to gdb, but since that wasn't working, I tried using gdb directly from the command-line.

I tried breaking on:

catch throw

break RaiseException

break __raise_exception
break __cxa_throw
break __cxa_raise_exception
break __cxa_raise
(Based off of digging around on Google)
I think I'm not able to break on it because the standard library is tossing it. How can I get gdb to break on a standard library exception throw?
Is it because I might not be linking against a debug version of the standard library? If so, how do I link against it?
I eventually found the source of the exception through 'divide and conquer' methods (actually, I just set a breakpoint on map.at(), and kept continuing until it crashed), but the overall problem still remains: How do I set GDB breakpoints on exceptions thrown by the standard library?

This topic is closed to new replies.

Advertisement