我知道如何等待并附加到本地进程( process attach --name procname --waitfor
) .
我也知道如何运行远程 debugserver
并连接到它 .
但是,我如何等待进程在远程主机上启动并附加到它?
EDIT
我试过@Jim's suggestion,似乎调试服务器实际上是试图附加但失败了 .
我接受他的答案,因为它是正确的,但我很高兴知道为什么我不能真正调试这个过程 .
仅供参考我想在JB iPhone上调试mdmd(mdm守护程序服务) . 该过程启动几秒钟以与mdm服务器通信,然后死亡 .
这是来自目标的终端:
~root#debugserver :1234 debugserver-310.2 for arm64 . 从端口1234收听来自的连接...获得连接,等待启动或附加的进程信息 . 连接成功,准备调试 . 退出 .
这是来自lldb的:
(lldb)进程连接connect:// localhost:1234(lldb)进程attach --name mdmd --waitfor错误:attach failed:无法附加
2 回答
最简单的方法是启动远程调试服务器,只连接到端口,没有其他参数 . 在该模式下,它完全由连接到它的lldb驱动 . 那么就这样做:
这将指示远程调试服务器等待该进程显示,然后它将附加到它 .
这并不直接回答您的问题,但其他人可能会发现它有用 . 在您的越狱设备上(使用Electra iOS11 JB),您可以以稍微不同的顺序发出
wait-for
...这使您能够在越狱设备上通过USB进行调试 .
当你从app-startup开始时,这很棒 . 然而,缺点是lldb无法控制
STDOUT
. 不要指望在lldb屏幕上显示NSLog
. 它将显示在Console.app
上 .