如何从app1触发的app2的main()中调用gdb?

问题描述:

提供的app2由app1触发,其中有类似system(“./app2”)的内容。 app1还做了很多准备工作,比如为app2运行创建dirs,文件,配置等。如何从app1触发的app2的main()中调用gdb?

我该如何从它的main()的第一行gdb app2?

我在下面尝试的是行不通的。

gdb app2 
    b main 
    shell ./app1 

system("./app2");

有实现这几个方面:

  1. 如果app1不关闭stdin, stdout, stderr,你可以修改app1要做到这一点,而不是:`系统(“gdb ./app2”)
  2. 您可以修改app2等待供调试器附加,例如, this answer显示。然后运行app1,并从另一个窗口使用gdb -p $child_pid
  3. 如果app1不前app2叉任何孩子,你可以使用(gdb) set follow-fork child,并有自动GDB调试开始后app2app1它。