在Eclipse中设置内存断点

时间:2012-11-09 15:16:33

标签: eclipse memory conditional-breakpoint

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

此问题已asked before,但only provided answer解决问题,基本上与Eclipse Online help中的信息相同

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

3 个答案:

答案 0 :(得分:9)

您需要使用watchpoint。从页面:

  1. 在编辑器中突出显示变量,或在“大纲”中选择它 图。
  2. 点击运行>切换观察点
  3. 执行以下任何操作:
    • 要在阅读监控表达式时停止执行,请选中读取复选框。
    • 要在写入监视表达式时停止执行,请选中写入复选框。
  4. 观察点显示在断点视图列表中。

答案 1 :(得分:1)

有效的解决方案:

 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.

答案 2 :(得分:0)

在Eclipse Oxygen中使用观察点:

  1. 在“表达式”视图(“窗口”>“显示视图”>“表达式”)中,添加一个表达式,例如:*(uint8_t*)0x231cc528。强制转换告诉Eclipse的内存位置大小。
  2. 右键单击添加的表达式,然后选择“添加监视点”。
  3. 生成的观察点可以在“断裂点”视图中进行编辑和控制。
  4. 编辑监视点可能很重要。如果你想检测其他线程所做的更改:右键单击“断点”视图中的监视点,选择“断点属性...”>“过滤器”,然后取消选中“限制为选定的进程和线程”