lldb 是否与这些 gdb 指令中的任何一个等效?我正在尝试使其遵循子进程而不是父进程,而无需执行此手动过程:
- 断叉
- 子进程的 pgrep
- 启动另一个 lldb 进程并附加到子进程
- 继续父
一些谷歌搜索没有提供任何见解。
上下文:我正在使用 NSTask 并使用 dyld 注入 dylib,并且希望在我的库中设置断点而不会带来很多痛苦。我很确定 NSTask 在内部使用 fork() 。
lldb 是否与这些 gdb 指令中的任何一个等效?我正在尝试使其遵循子进程而不是父进程,而无需执行此手动过程:
一些谷歌搜索没有提供任何见解。
上下文:我正在使用 NSTask 并使用 dyld 注入 dylib,并且希望在我的库中设置断点而不会带来很多痛苦。我很确定 NSTask 在内部使用 fork() 。
lldb 目前不支持“follow-fork-mode”。您通常可以使用 lldb 的“attach --wait-for”或在 Xcode 中通过在运行方案中为您正在调试的目标选择“等待手动启动”选项来实现相同的效果。这些将抓住具有给定名称的进程的第一个新出现。
看起来 follow-fork-mode刚刚合并到 LLDB 的主分支中。
settings set target.process.follow-fork-mode child
此代码比当前的 LLVM 13.0.0 版本更新,因此在有新版本之前,您必须从源代码构建它,或者可能使用brew install --HEAD llvm
. 对于 macOS,您还必须对lldb进行代码设计。
最终它应该会成为发布版本,然后是 Apple 的 CLI 工具,尽管我不知道时间表可能是什么。