使用Step into调试[VZVirtualMachine isSupported]卡objc_msgSend,如何设近实际代码断点?
直接定位
VZVirtualMachine isSupported实现的断点技巧 - 设置符号断点:打开Xcode的断点导航栏(快捷键Cmd+8),点击右上角的"+"选择「Symbolic Breakpoint」,在「Symbol」输入框中填写
-[VZVirtualMachine isSupported],确认后启动调试,程序会直接在该方法的实际实现处停下,无需在objc_msgSend流程中逐步查找。 - 用LLDB命令手动创建断点:调试会话启动后,在LLDB控制台输入以下命令:
执行后断点会被精准创建,运行到目标方法时自动暂停。breakpoint set -n "-[VZVirtualMachine isSupported]" - 通过内存地址设置断点:如果符号断点未生效,先在LLDB中执行命令查找方法的内存地址:
从输出结果中提取方法的内存地址(类似image lookup -rn "-[VZVirtualMachine isSupported]"0x0000000100001234),再用地址创建断点:
这种方式能直接定位到方法的机器码实现位置。breakpoint set -a 0x0000000100001234
内容的提问来源于stack exchange,提问作者vbezhenar
相关产品推荐
相关产品推荐

