10

lldb 是否与这些 gdb 指令中的任何一个等效?我正在尝试使其遵循子进程而不是父进程,而无需执行此手动过程:

  1. 断叉
  2. 子进程的 pgrep
  3. 启动另一个 lldb 进程并附加到子进程
  4. 继续父

一些谷歌搜索没有提供任何见解。

上下文:我正在使用 NSTask 并使用 dyld 注入 dylib,并且希望在我的库中设置断点而不会带来很多痛苦。我很确定 NSTask 在内部使用 fork() 。

4

2 回答 2

4

lldb 目前不支持“follow-fork-mode”。您通常可以使用 lldb 的“attach --wait-for”或在 Xcode 中通过在运行方案中为您正在调试的目标选择“等待手动启动”选项来实现相同的效果。这些将抓住具有给定名称的进程的第一个新出现。

于 2013-10-14T22:16:33.973 回答
4

看起来 follow-fork-mode刚刚合并到 LLDB 的主分支中。

settings set target.process.follow-fork-mode child

此代码比当前的 LLVM 13.0.0 版本更新,因此在有新版本之前,您必须从源代码构建它,或者可能使用brew install --HEAD llvm. 对于 macOS,您还必须对lldb进行代码设计。

最终它应该会成为发布版本,然后是 Apple 的 CLI 工具,尽管我不知道时间表可能是什么。

于 2021-10-24T17:45:04.227 回答