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

时间:2017-09-05 02:31:27

标签: debugging gdb

app2由app1触发,其中有类似system(" ./ app2")。 app1还做了很多准备工作,例如为app2运行创建目录,文件,配置......

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

我在下面尝试的内容并不起作用。

gdb app2
  b main
  shell ./app1

1 个答案:

答案 0 :(得分:0)

  

system("./app2");

有几种方法可以实现这一目标:

  1. 如果app1未关闭stdin, stdout, stderr,您可以修改app1来执行此操作:`system(“gdb ./app2”)
  2. 您可以将app2修改为等待,以便附加调试器,例如this answer显示。然后运行app1,并从其他窗口使用gdb -p $child_pid
  3. 如果app1未在app2之前对任何孩子进行分叉,则可以使用(gdb) set follow-fork child并让app2分发后让GDB自动开始调试app1