2013-07-04 31 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