我正在阅读iOS逆向工程书中的LLDB和调试服务器主题,并遇到以下详细信息错误。
所有配置都很好。 但是当我使用 Xcode5 或 Xcode6 的 lldb 时,该命令process connect connect:iOSIP:Port
显示如下错误,
(LLDB) 进程连接 connect://10.18.136.168:1234 断言失败: (pointer_byte_size== m_host_arch。GetAddressByteSize()), 函数 获取主机信息,文件/SourceCache/lldb/lldb-300.2.53/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp, 第 1266 行。中止陷阱:6
当我使用 Xcode8 的 lldb 时,该命令process connect connect:iOSIP:Port
显示如下错误,
(LLDB) 进程连接 connect://10.18.136.168:1234 进程 8147 停止 * 线程 #1,停止原因 = 信号 SIGSTOP 帧 #0:0x00000001987ace0c错误:内存读取失败0x1987ace00
环境:
- macOS Sierra
- Xcode 8.3.2
- Xcode 6.0.1
- Xcode 5.0.2
- iOS 8.2越狱
我已经使用命令行尝试了三个版本的 Xcode 的 lldbprocess connect connect://10.18.136.168:1234
,都失败了。
过了一会儿,我找到了一个解决方案,我想在这里分享。
解决方案链接: http://bbs.iosre.com/t/failed-to-remote-debugging-on-using-command-line-process-connect-connect-iosip-port/8259/4
问题在于设备的体系结构。当我使用armv7s
架构精简debugserver
时,它无法附加process
.
但是,有一个网页在功能GetHostInfo
链接到 https://reviews.llvm.org/file/data/j3cbbw4262e57hrbundw/PHID-FILE-vojdaczcpqpc5h2sl6hl/filepointer_byte_size == m_host_arch.GetAddressByteSize()
显示。
所以我通过使用arm64
输出一个新的debugserver
来精简它,命令如下所示
LIPO -薄型 ARM64 调试服务器 - 输出调试服务器 codesign -s - --entitlements ent.plist -f debugserver
最后,它适用于我的iPhone 5,调试任何应用程序都可以顺利。