我正在调试一个应用程序,我试图了解 gdb 的工作原理以及为什么我有时无法单步执行该应用程序。我遇到的问题是,当我单步执行程序时,gdb 将挂起,并且它所附加的进程将进入失效状态。 gdb 挂起后,我必须杀死它以释放终端(ctrl-C 不起作用,我必须通过获取该 gdb 会话的进程 ID 并使用kill -9 从不同的终端窗口执行此操作)。
我猜测 gdb 挂起是因为它正在等待应用程序在下一条指令处停止,并且不知何故应用程序完成执行而 gdb 没有识别这一点。但这只是我根据迄今为止观察到的行为进行的猜测。所以我的问题是是否有人以前见过这种类型的行为和/或可以建议可能的原因是什么。我认为这可能会帮助我改进我的调试策略。
如果重要的话,我正在使用 g++ 4.4.3、gdb 7.1,在 Ubuntu 10.04 x86_64 上运行。
我遇到了类似的问题并通过发送解决了它CONT
向正在调试的进程发出信号。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)