如何让gdb在通过check执行的代码中的断点处停止?

时间:2013-07-04 15:34:03

标签: gdb

如何让gdb在通过check执行的代码中的断点处停止?

#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会停止。

1 个答案:

答案 0 :(得分:0)

使用srunner_run_all(sr, CK_NOFORK);就可以了。检查是否为测试分配了新的过程,以便可以处理和报告seg-faults等,而不会使测试程序崩溃。

更多详情可在documentation of check

中找到