Jump to content

  • Log In with Google      Sign In   
  • Create Account


#ActualServant of the Lord

Posted 24 March 2013 - 09:30 PM

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?

#1Servant of the Lord

Posted 24 March 2013 - 07:52 PM

My program is throwing an exception. It's "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?

PARTNERS