[英]how to run a program with gdb which is invoked from a shell script, which in turn invoked from c++ via boost::process
我想用外壳程序脚本调用的gdb调试ac程序。 在此shell脚本中,完成了许多工作,并设置了许多环境变量。
shell脚本由c ++程序的boost :: process :: launch调用。
我可以更改c ++程序,shell脚本和c程序本身,但是不能更改此流程的体系结构。
有什么办法,这样我就可以用gdb调试程序了。
如果没有解决方案,有没有办法在启动shell脚本之前转储所有环境设置,以便我可以使用这些设置启动相同的脚本,以便以后对其进行调试。 我将更喜欢一种可移植的长期解决方案。
两种简单的选择:
如果不必在特定点停止gdb -p <pid of process>
则在程序启动后附加gdb。
插入raise(SIGSTOP);
在您要停止的C程序中。 一旦进程停止,按1
附加gdb,设置所需的任何断点,然后向该进程发送SIGCONT
信号( kill -CONT <pid of process>
)以使其继续。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.