stst :: bad_function_call的callstack

时间:2013-04-09 15:18:30

标签: c++ linux c++11

我有一个linux程序终止于:

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

在调用堆栈中,我遗憾地看不到调用坏函数的位置。 此外,它在生成此错误之前进行了很多迭代,因此我无法手动调试它。

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

3 个答案:

答案 0 :(得分:8)

你能从gdb设置catchpoint吗?你想要执行

catch throw
在运行程序之前从gdb命令行

,然后在抛出异常时将触发断点。

答案 1 :(得分:2)

您可以使用gdb查看抛出异常的位置:

(gdb) catch throw

只要程序中出现新的异常,它就会停止,您将看到它发生的位置。

答案 2 :(得分:0)

请参考该网站。就我而言,此问题是由使用空函数指针引起的。 http://www.cplusplus.com/reference/functional/bad_function_call/