我正在阅读的主题是iOS逆向工程书中的LLDB和debugserver,并在下面详细地遇到错误。
所有配置都很好。
但是当我使用Xcode5或Xcode6的lldb时,命令process connect connect:iOSIP:Port
出现如下错误,
(lldb)进程connect connect://10.18.136.168:1234断言失败: (pointer_byte_size == m_host_arch.GetAddressByteSize()),函数 GetHostInfo,文件 /SourceCache/lldb/lldb-300.2.53/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp, 第1266行。中止陷阱:6
当我使用Xcode8的lldb时,命令process connect connect:iOSIP:Port
出现如下错误,
(lldb)进程connect connect://10.18.136.168:1234进程8147 停止 *线程#1,停止原因=信号SIGSTOP 帧#0:0x00000001987ace0c错误:0x1987ace00的内存读取失败
环境:
我使用命令行process connect connect://10.18.136.168:1234
尝试了三个版本的Xcode的lldb,都失败了。
答案 0 :(得分:0)
过了一会儿,我找到了一个解决方案,我想在这里分享。
问题在于设备的架构。当我使用debugserver
架构细化armv7s
并且无法附加process
时。
但是,在链接到https://reviews.llvm.org/file/data/j3cbbw4262e57hrbundw/PHID-FILE-vojdaczcpqpc5h2sl6hl/file的功能pointer_byte_size == m_host_arch.GetAddressByteSize()
中有一个显示GetHostInfo
的网页。
所以我通过使用arm64
输出新的debugserver
来对其进行细化,命令如下所示
lipo -thin arm64 debugserver -output debugserver codesign -s --entitlements ent.plist -f debugserver
最后,它适用于我的iphone 5,调试任何应用程序都很顺利。