【发布时间】:2011-07-06 22:06:43
【问题描述】:
通常我会不处理它,调试器(gdb、Eclipse CDT)会向我显示调用堆栈。不幸的是,该代码被吸收所有异常的第三方库调用。我可以在第三方库之前捕获异常,但是我看不到调用堆栈(堆栈展开?)。
如何确定异常是在哪里引发的?
【问题讨论】:
标签: c++ exception exception-handling gdb eclipse-cdt
通常我会不处理它,调试器(gdb、Eclipse CDT)会向我显示调用堆栈。不幸的是,该代码被吸收所有异常的第三方库调用。我可以在第三方库之前捕获异常,但是我看不到调用堆栈(堆栈展开?)。
如何确定异常是在哪里引发的?
【问题讨论】:
标签: c++ exception exception-handling gdb eclipse-cdt
catchpoints 会帮忙吗?只要在 gdb 中输入catch throw 命令,您就可以在抛出异常时中断。在 Eclipse 中,您可以通过 gdb 控制台执行此操作。见this question。
【讨论】:
您可以在异常对象的构造函数中放置一个断点。由于这发生在抛出异常之前,因此您可以很好地了解调用代码。
【讨论】: