Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在使用类似于以下代码的 C++ 代码时遇到了一些问题:
try { /* some code here */ } catch(...) { /* ... */ }
我正在使用 gdb 单步执行包含在 try 块中的代码,并且在某些时候会抛出一些东西。我真的不知道它是什么,因为抛出的函数调用来自库并且没有与之关联的调试符号。
gdb 有没有办法确定在 catch 块中捕获了什么?
您可以尝试call current_exception(),如果您的平台支持,它将exception_ptr为当前异常返回一个。然而,它并没有具体说明 exception_ptr 中包含的内容,但您可以检查它x以查看是否可以解决问题。
call current_exception()
exception_ptr
x
某些寄存器也可能包含当前的异常数据,但您没有指定您正在使用的架构。