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