Hello world命令行LLDB iOS无法在' main'中解析断点

时间:2014-03-27 10:49:20

标签: ios jailbreak lldb arm64

我已经提取debugserver并将其复制到我已越狱的iPhone 5S中。然后我在我的Mac上运行LLDB并使用说明here连接它。

我使用SSH / SFTP复制了一个用C编写并用ARM64编译的简单hello world程序到我的iPhone 5S并且chmod它。

我使用了命令:./debugserver *:1234 helloworld64_full,其中helloworld64_full是设备上的可执行文件。

然后我开始连接到iPhone:platform select remote-iosprocess connect connect://localhost:1234停在:

Process 442 stopped
* thread #1: tid = 0x90ed, 0x0000000120085010 dyld`_dyld_start, stop reason = signal SIGSTOP
        frame #0: 0x0000000120085010 dyld`_dyld_start
    dyld`_dyld_start:
    -> 0x120085010:  add    x28, sp, 0
   0x120085014:  and    sp, x28, #0xfffffffffffffff0
   0x120085018:  movz   x0, #0
   0x12008501c:  movz   x1, #0
   (lldb) b main

然而,当我开始设置断点b main时。它说:

Breakpoint 1: no locations (pending).
WARNING:  Unable to resolve breakpoint to any actual locations.

但是当我重新编译x86-64的相同源程序并在我的mac上调试时,我可以设置断点。为什么会这样?请告知谢谢。

1 个答案:

答案 0 :(得分:3)

好吧,我通过在lldb客户端上实际包含文件得到它,如下所示:

target create --arch arm64 helloworld_full

基本上我忘记了必须在客户端上加载要调试的可执行文件的相同副本(例如,mac机器)