17

对于这个可能微不足道的问题,我深表歉意,但由于谷歌一遍又一遍地给我同样不适用的答案,我遇到了困难。

我正在尝试在 LLDB 中设置断点。阅读文档后,我可以选择在源代码中的某一行或某个符号上停止。

我想要做的是在某个内存位置设置断点。

也不是对该内存位置进行读写操作,而是在该位置的指令即将执行时中断。

在伪代码中:

break 0x00010000

当 EIP 指向 0x00010000 时中断。

我怎样才能做到这一点?

4

2 回答 2

28

breakpoint set有地址选项;您将键入help breakpoint set以查看所有这些。对于您的具体示例,

(lldb) br s -a 0x10000

(您始终可以在 lldb 中使用较短版本的命令名称,这些命令名称是明确的,因此breakpoint set无需输入)

于 2012-11-22T22:51:44.637 回答
0

另一种方法是使用“进程启动--stop-at-entry ...”。这将允许您在程序启动后设置断点,然后“继续”将让您在第一个断点处停止。有趣的是(在 Ubuntu 中测试)使用 --stop-at-entry 需要更长的时间来启动(约 3 秒)。我需要在 OS X 上使用它,也许它会更快。

于 2018-12-06T23:27:02.640 回答