繁体   English   中英

如何使用gdb运行程序,该程序是从Shell脚本调用的,而后者又通过boost :: process从c ++调用

[英]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脚本之前转储所有环境设置,以便我可以使用这些设置启动相同的脚本,以便以后对其进行调试。 我将更喜欢一种可移植的长期解决方案。

两种简单的选择:

  1. 如果不必在特定点停止gdb -p <pid of process>则在程序启动后附加gdb。

  2. 插入raise(SIGSTOP); 在您要停止的C程序中。 一旦进程停止,按1附加gdb,设置所需的任何断点,然后向该进程发送SIGCONT信号( kill -CONT <pid of process> )以使其继续。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM