2013-04-09 109 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 

每當一個新的異常,在程序中拋出這將停止,你會看到它發生。