【问题标题】:How do I debug the child process after fork() in gdb?如何在 gdb 中的 fork() 之后调试子进程?
【发布时间】:2011-06-01 09:48:52
【问题描述】:

调用fork后,当前进程会调用exit(0)

但孩子会继续。

switch(fork())
{
  case -1:
    exit(1);
  case 0:
    //child process,continue
    break;
  default:
    //the current process,exit
    exit(0);
}

在这种情况下如何继续调试子进程?

【问题讨论】:

标签: c gdb fork


【解决方案1】:

看看this。使用:

set follow-fork-mode <mode>

设置调试器响应 fork 或 vfork 的程序调用。调用 fork 或 vfork 会创建一个新进程。 &lt;mode&gt; 参数可以是:

parent:fork后调试原进程。子进程畅通无阻地运行。这是默认设置。

child: fork 后调试新进程。父进程畅通无阻地运行。

【讨论】:

  • 有没有办法同时调试父母和孩子?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-08
  • 1970-01-01
  • 2013-01-18
  • 1970-01-01
  • 1970-01-01
  • 2014-07-04
相关资源
最近更新 更多