【问题标题】:How to get gdb to stop at breakpoints in code executed via check?如何让 gdb 在通过检查执行的代码中的断点处停止?
【发布时间】:2013-07-04 15:34:03
【问题描述】:

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

【问题讨论】:

  • 如果设置 hbreak 的行为不同,您是否尝试过?

标签: gdb


【解决方案1】:

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

更多详情请见documentation of check

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-01-11
  • 2013-07-20
  • 1970-01-01
  • 2016-08-26
  • 1970-01-01
  • 1970-01-01
  • 2019-03-10
  • 2020-07-23
相关资源
最近更新 更多