0

如何让 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 确实会停止。

4

1 回答 1

0

使用srunner_run_all(sr, CK_NOFORK);成功了。Check fork 为测试创建一个新进程,以便在测试程序不崩溃的情况下处理和报告 seg-faults 等。

更多细节可以在检查文档中找到

于 2013-07-07T07:33:27.917 回答