【问题标题】:Why lldb doesn't use ptrace on linux?为什么 lldb 在 linux 上不使用 ptrace?
【发布时间】:2022-08-04 01:05:29
【问题描述】:

strace -o file lldb someprog 的输出中,我发现没有ptrace

那么lldb如何获取PTRACE_ATTACH/PTRACE_SINGLESTEP之类的特性呢?

  • strace -f ...可以找到ptrace

标签: linux debugging gdb lldb ptrace


【解决方案1】:

具有讽刺意味的是,lldb 进程并没有进行任何实际的调试。相反,它总是使用代理(Linux 上的 lldb-server,Darwin 上的 debugserver)(*)进行实际调试,并使用 gdb 远程串行协议与其通信。 lldb-server 确实在 Linux 上使用了 ptrace(在 Darwin 上也有一些)。

(*) 我认为仍然有一个用于 Windows 的进程内适配器,但 IIRC 他们也正在切换到 lldb-server。

【讨论】:

    最近更新 更多