2013-07-04 64 views
0

如何讓gdb停止在通過檢查執行的代碼中的斷點處?如何讓gdb停止在通過檢查執行的代碼中的斷點?

#include<check> 
int main(int argc, char **argv) 
{ 
    Suite *s = create_suite(); //create a test suite 
    SRunner *sr = srunner_create(s); 
    srunner_run_all(sr, CK_NORMAL); 
} 

某處在srunner_run_all(sr, CK_NORMAL)我的代碼被執行。我可以在代碼中設置斷點(這是一個共享庫,由於掛起斷點而沒有問題)。加載共享庫後,info b可正確打印斷點。儘管如此,gdb並沒有停在斷點處。

編輯:如果我在上面的代碼中設置了一個斷點,gdb確實停止。

+0

找到你嘗試,如果設置一個hbreak行爲有所不同? – dbrank0

回答

0

使用srunner_run_all(sr, CK_NOFORK);訣竅。檢查一下測試的新過程,以便在沒有測試程序崩潰的情況下處理和報告分段故障等。

更多細節可以在documentation of check

+0

您也可以使用gdb(請參閱http://sourceware.org/gdb/current/onlinedocs/gdb/Forks.html#Forks) – Hasturkun