命令行应用程序:如何将子进程附加到xcode调试器?

我目前正在C中创建一个命令行应用程序,其中创建了许多子进程。 所以我需要调试这个子代码。 我在Xcode上创建了一个子进程,如下所示。 (参见断点和运行光标。)

在此处输入图像描述

执行一些语句后,我得到xcode将GBN(885)附加到xcode调试器,如下图所示。

在此处输入图像描述在此处输入图像描述

它不起作用。 如何将子进程附加到xcode调试器? 先感谢您。

谷歌和苹果开发者页面在这个问题上真的很安静,最后我找到了一个很好的解决方法。 当我们让Xcode调试器附加到进程时,会出现此错误消息,该进程是正在调试的进程的子进程,或者是已由Xcode调试器,gdb或lldb调试的进程。

错误信息

为了避免这种恼人的消息,首先将kill(0, SIGSTOP)语句放在要停止子进程的位置。 在下图中,我在创建子项后立即放置了kill语句。

在此处输入图像描述

其次,使用gcc使用-g选项编译源代码。

 $ ls GBN.1 gbn.c gbn.h type.h util.c util.h $ gcc *.c -g $ ./a.out [1]+ Stopped ./a.out $ ps -ef | grep a.out 501 628 600 0 9:33AM ttys000 0:00.00 ./a.out 501 629 628 0 9:33AM ttys000 0:00.00 ./a.out 

现在,我们要做的就是告诉Xcode调试器通过pid附加到进程。 单击Debug菜单,然后找到Attach to process选项以单击By Process Identifier (PID) or name选项。 然后键入子进程(或父进程)的pid,然后单击附加按钮。

在此处输入图像描述

享受调试!

在此处输入图像描述