2013-04-09 124 views
2

我有与终止一个Linux程序:调用堆栈性病:: bad_function_call

terminate called after throwing an instance of 'std::bad_function_call'

在调用堆栈我黯然不从哪里不好函数被调用看到。 另外它在产生这个错误之前做了非常多的迭代,所以我不能亲自去调试它。

有没有办法找到有问题的一段代码?

回答

6

你能设置一个gdb的catchpoint吗?您需要在运行程序之前执行

catch throw 

gdb命令行,然后在抛出异常时会触发断点。

+0

谢谢。确切地说,我在寻找什么。 – abergmeier 2013-04-09 15:34:02

2

您可以使用gdb来见异常被抛出,其中:

(gdb) catch throw 

每当一个新的异常,在程序中抛出这将停止,你会看到它发生。