【发布时间】: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
从strace -o file lldb someprog 的输出中,我发现没有ptrace。
那么lldb如何获取PTRACE_ATTACH/PTRACE_SINGLESTEP之类的特性呢?
标签: linux debugging gdb lldb ptrace
具有讽刺意味的是,lldb 进程并没有进行任何实际的调试。相反,它总是使用代理(Linux 上的 lldb-server,Darwin 上的 debugserver)(*)进行实际调试,并使用 gdb 远程串行协议与其通信。 lldb-server 确实在 Linux 上使用了 ptrace(在 Darwin 上也有一些)。
(*) 我认为仍然有一个用于 Windows 的进程内适配器,但 IIRC 他们也正在切换到 lldb-server。
【讨论】: