2016-04-06 84 views
1

我知道如何等待并附加到本地进程(process attach --name procname --waitfor)。
我也知道如何运行远程debugserver并连接到它。用lldb远程调试 - 等待进程

但我该如何等待进程在远程主机上启动并连接到它?

编辑

我已经试过@Jim's suggestion,而且好像调试服务器实际上是试图附加但失败
我接受他的回答,因为它是正确的,但我会很乐意知道为什么我不能真正调试过程。
仅供参考我试图在JB iPhone上调试mdmd(mdm守护进程服务)。该过程启动几秒钟与mdm服务器通信,然后死亡。

这是从目标的终端:

~ root# debugserver *:1234
debugserver-310.2 for arm64.
Listening to port 1234 for a connection from *...
Got a connection, waiting for process information for launching or attaching.
Attach succeeded, ready to debug.
Exiting.

这是从LLDB的:

(lldb) process connect connect://localhost:1234
(lldb) process attach --name mdmd --waitfor
error: attach failed: unable to attach

+0

通常守护进程标记自己不可调试,所以在任何最近的基于达尔文的系统上,我都会期待attach被拒绝。例如,如果你曾试图在OS X上执行此操作,即使以root身份执行操作,也会得到相同的错误。但我对监狱破碎的设备没有任何经验。 –

回答

1

做到这一点,最简单的方法是启动远程debugserver只与端口连接并没有其他论据。在该模式下,它完全由连接到它的lldb驱动。那么就这样做:

(lldb) process attach --name procname --waitfor 

并且这将指示远程调试服务器等待该进程出现,然后它将附加到它。

+0

谢谢@Jim,请参阅我的编辑。 – Elist