6

我有一个生成辅助进程的进程。有时我需要在第二个进程中调试启动失败。

在 Windows 上,我会使用Image File Execution Options, 或ntsd -o. 但是,我不知道如何在 OS X 上使用 GDB 执行此操作。

4

3 回答 3

8

使用gdb --wait。例如,尝试

gdb --wait TextEdit

从命令行,然后启动 TextEdit。

于 2009-09-05T21:34:08.737 回答
2

我认为您不能以相同的方式启动 GDB。

相反,在 GDB 中运行父进程或附加到正在运行的进程,然后再分叉帮助程序。有一个称为follow-fork-mode控制调试器遵循哪个进程的设置。查看GDB 手册以获得很好的描述。

于 2009-09-05T21:21:21.870 回答
2

如果您使用launchd来生成进程,那么在作业的p-list 文件WaitForDebugger中有一个布尔键。如果是,那么 launchd 在执行任务之前会等待(令人惊讶!)调试器。exec()

于 2009-09-05T22:07:05.293 回答