使用check检查C中的调试单元

Kar*_*och 7 c debugging unit-testing gdb check-framework

我正在尝试将检查 单元测试框架用于我的C应用程序.但由于两点,我无法使用调试器(gdb):

  • 首先,检查使用一些复杂的宏(START_TESTEND_TEST),并且调试器在这两个宏之间的代码中放置一个断点很麻烦(事实上,我可以放一个软件断点,但gdb从未见过它)

  • 第二,通过重新定义中断行为来检查定义某种异常.因此,当我尝试放置硬件断点时,测试失败并退出,因为检查将硬件断点视为我的测试失败.

有没有人已经遇到这个问题并有解决方案?

Jon*_*ler 11

看看无叉模式:

通常检查分叉以创建单独的地址空间.这允许捕获和报告信号或早期退出,而不是取消整个测试程序,并且通常非常有用.但是,当您尝试调试分段错误或其他程序错误发生的原因时,分叉会使调试工具难以使用.


Pau*_*aet 5

实际上,你也可以使用fork-mode.

gdb有两个与fork行为相关的有趣选项:
- detach-on-fork(将此设置为false)
- follow-on-fork(父或子;我总是带孩子)

这将使gdb遵循子进程.子进程结束后,您必须使用该inferior命令手动切换回父进程.