我试图在我的C应用程序中使用检查单元测试框架。但是我不能使用调试器(gdb),因为有两点:
START_TEST和END_TEST),调试器很难在这两个宏之间的代码中放置一个断点(实际上,我可以放置一个软件断点,但gdb从未见过)。有没有人遇到过这个问题,有解决的办法?
发布于 2009-10-30 14:48:51
看看无叉模式
通常检查分叉以创建单独的地址空间。这允许捕获和报告信号或早期退出,而不是删除整个测试程序,而且通常非常有用。但是,当您试图调试分段错误或其他程序错误发生的原因时,分叉会使调试工具难以使用。
发布于 2010-09-04 06:50:19
实际上,你也可以使用分叉模式。
gdb有两个与叉子行为相关的有趣选项:
detach-on-fork (将此设置为false)follow-on-fork (父母或孩子;我总是带孩子)这将使gdb遵循子进程。当子进程结束时,必须使用inferior命令手动切换回父进程。
发布于 2018-05-18 23:26:12
我读过这,他提出了一个非常简单的解决方案:
gdb > set environment CK_FORK=no对我起作用了。然后,我可以在测试用例调用的函数(即正在测试的函数)中设置一个断点,然后它在正确的位置崩溃。
https://stackoverflow.com/questions/1649814
复制相似问题