对于这个可能微不足道的问题,我深表歉意,但由于谷歌一遍又一遍地给我同样不适用的答案,我遇到了困难。
我正在尝试在 LLDB 中设置断点。阅读文档后,我可以选择在源代码中的某一行或某个符号上停止。
我想要做的是在某个内存位置设置断点。
也不是对该内存位置进行读写操作,而是在该位置的指令即将执行时中断。
在伪代码中:
break 0x00010000
当 EIP 指向 0x00010000 时中断。
我怎样才能做到这一点?
对于这个可能微不足道的问题,我深表歉意,但由于谷歌一遍又一遍地给我同样不适用的答案,我遇到了困难。
我正在尝试在 LLDB 中设置断点。阅读文档后,我可以选择在源代码中的某一行或某个符号上停止。
我想要做的是在某个内存位置设置断点。
也不是对该内存位置进行读写操作,而是在该位置的指令即将执行时中断。
在伪代码中:
break 0x00010000
当 EIP 指向 0x00010000 时中断。
我怎样才能做到这一点?
breakpoint set
有地址选项;您将键入help breakpoint set
以查看所有这些。对于您的具体示例,
(lldb) br s -a 0x10000
(您始终可以在 lldb 中使用较短版本的命令名称,这些命令名称是明确的,因此breakpoint set
无需输入)
另一种方法是使用“进程启动--stop-at-entry ...”。这将允许您在程序启动后设置断点,然后“继续”将让您在第一个断点处停止。有趣的是(在 Ubuntu 中测试)使用 --stop-at-entry 需要更长的时间来启动(约 3 秒)。我需要在 OS X 上使用它,也许它会更快。