我想用shell脚本调用gdb来调试c程序。在这个shell脚本中,有很多事情已经完成,并且设置了许多环境变量。
这个shell脚本由来自c ++程序的boost :: process :: launch调用。
我可以更改c ++程序,shell脚本和c程序本身,但无法更改此流程的体系结构。
有没有办法,所以我可以使用gdb来调试程序。
如果没有解决方案,是否有办法在启动shell脚本之前转储所有环境设置,以便我可以使用这些设置启动相同的脚本以便稍后进行调试。我更喜欢便携式和长期解决方案。
答案 0 :(得分:2)
两个简单的选择:
在程序开始后使用raise(SIGSTOP);
附加gdb,如果在特定点停止它并不重要。
在C程序中插入1
,使其停止。停止进程后,将{g}添加到SIGCONT
中,设置所需的任何断点,然后向进程发送kill -CONT <pid of process>
信号(getElementsByTagName("td");
)以使其继续。