我是一名研究C ++的C开发人员:
我是否正确理解如果我抛出异常,那么堆栈将展开直到找到第一个异常处理程序?是否有可能在没有展开的任何throw
上打开调试器(即没有离开声明它的范围或任何更高的范围)?
我问的原因是,即使有更高范围的异常处理程序 - 我对该范围的本地人感兴趣(并且也不想丢失RAII的objs)并且想看看他们在调试期间。
编辑:主要是针对win + linux上的g ++,但也对其他平台感兴趣。答案 0 :(得分:1)
您没有指定工具集/平台。
但在MSVC中,您可以配置调试器以中断各种类型的异常,在您的情况下,它将是C ++异常。
详情请见此处:
http://msdn.microsoft.com/en-us/library/d14azbfh.aspx
编辑:对于gcc / gdb,请参阅此问题Run an Application in GDB Until an Exception Occurs