Debugging 如何从app1触发的app2的main()中删除gdb?

Debugging 如何从app1触发的app2的main()中删除gdb?,debugging,gdb,Debugging,Gdb,提供的app2由app1触发,其中有类似系统(“./app2”)的内容。app1还做了很多准备工作,比如创建目录、文件、配置。。。对于正在运行的app2 如何从gdb app2的main()的第一行开始创建它 我下面尝试的方法不起作用 gdb app2 b main shell ./app1 系统(“/app2”) 有几种方法可以实现这一点: 如果app1没有关闭stdin、stdout、stderr,您可以修改app1来执行此操作:`system(“gdb./app2”) 您可以修改

提供的app2由app1触发,其中有类似系统(“./app2”)的内容。app1还做了很多准备工作,比如创建目录、文件、配置。。。对于正在运行的app2

如何从gdb app2的main()的第一行开始创建它

我下面尝试的方法不起作用

gdb app2
  b main
  shell ./app1
系统(“/app2”)

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

  • 如果
    app1
    没有关闭
    stdin、stdout、stderr
    ,您可以修改
    app1
    来执行此操作:`system(“gdb./app2”)
  • 您可以修改
    app2
    以等待附加调试器,如图所示。然后运行
    app1
    ,并从另一个窗口使用
    gdb-p$child\u pid
  • 如果
    app1
    没有在
    app2
    之前分叉任何子项,您可以使用
    (gdb)设置follow fork child
    ,并让gdb在
    app1
    分叉之后自动启动调试
    app2
  • 系统(“/app2”)

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

  • 如果
    app1
    没有关闭
    stdin、stdout、stderr
    ,您可以修改
    app1
    来执行此操作:`system(“gdb./app2”)
  • 您可以修改
    app2
    以等待附加调试器,如图所示。然后运行
    app1
    ,并从另一个窗口使用
    gdb-p$child\u pid
  • 如果
    app1
    没有在
    app2
    之前分叉任何子项,您可以使用
    (gdb)设置follow fork child
    ,并让gdb在
    app1
    分叉之后自动启动调试
    app2