通常我会让它处理不当,调试器(gdb,Eclipse CDT)会显示调用堆栈。不幸的是,代码被第三方库调用,它吸收了所有异常。我可以在第三方库之前捕获异常但是我看不到调用堆栈(stack-unwinding?)。
如何判断抛出异常的位置?
答案 0 :(得分:5)
catchpoints会有帮助吗?只要在gdb中输入catch throw
命令,就可以在抛出异常时中断。在Eclipse中,您可以通过gdb控制台执行此操作。请参阅this question。
答案 1 :(得分:4)
您可以在异常对象的构造函数中放置断点。由于这是在抛出异常之前发生的,因此您可以很好地了解调用代码。