我遇到了类似下面的C ++代码问题:
try {
/* some code here */
} catch(...) {
/* ... */
}
我正在使用gdb逐步执行try块中包含的代码,并且某些时候正在抛出某些东西。我真的不知道它是什么,因为抛出的函数调用来自一个库,没有与之关联的调试符号。
gdb是否有办法确定catch块中捕获的内容?
答案 0 :(得分:1)
您可以尝试使用call current_exception()
,如果您的平台支持,则会为当前例外返回exception_ptr
。但是,没有详细说明exception_ptr中包含的内容,但您可以使用x
进行检查,看看是否可以解决问题。
某些寄存器也可能包含当前的异常数据,但您没有指定您正在使用的架构。