15

如何在 Eclipse 中设置内存断点?也就是说,我想设置一个条件断点,当给定内存位置的数据发生变化时触发。

这个问题以前曾被问过,但唯一提供的答案并没有解决这个问题,并且与Eclipse 在线帮助中的信息基本相同。

我正在寻找的是更详细的信息(或者一个例子会很好),用于在 Eclipse 中设置条件断点,该断点将在特定内存地址的数据发生变化时触发。

4

3 回答 3

12

您需要使用观察点。从页面:

  1. 在编辑器中突出显示变量,或在大纲视图中选择它。
  2. 单击运行 > 切换观察点
  3. 执行以下任一操作:
    • 要在读取监视表达式时停止执行,请选中读取复选框。
    • 要在写入监视表达式时停止执行,请选中写入复选框。
  4. 观察点出现在断点视图列表中。
于 2012-11-09T15:27:57.240 回答
2

有效的解决方案:

 1/ Select the variable representing the pointer you want to break on in a given context in the "Variables" tab
 2/ Right click, then select "Add Watchpoint (C/C++)
 3/ In the field "Expression to watch", just replace the name of the variable by the memory address to break on.
于 2014-10-01T08:16:34.780 回答
1

在 Eclipse Oxygen 中使用观察点:

  1. 在表达式视图(窗口 > 显示视图 > 表达式)中,添加一个表达式,例如: *(uint8_t*)0x231cc528。演员表告诉 Eclipse 内存位置大小。
  2. 右键单击添加的表达式并选择“添加观察点”。
  3. 生成的观察点可以在“断点”视图中进行编辑和控制。
  4. It may be important to edit the Watchpoint. If you want to e.g. detect changes done by other threads: right-click the Watchpoint in the "Breakpoints" view, select Breakpoint Properties... > Filter, UN-check "Restrict to Selected Processes and Threads"
于 2018-07-09T18:52:49.303 回答