【问题标题】:Setting Memory Breakpoints in Eclipse在 Eclipse 中设置内存断点
【发布时间】:2012-11-09 15:16:33
【问题描述】:

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

这个问题一直是asked before,但only provided answer 没有解决这个问题,并且与Eclipse Online help 中的信息基本相同。

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

【问题讨论】:

    标签: eclipse memory conditional-breakpoint


    【解决方案1】:

    您需要使用watchpoint。从页面:

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

    【讨论】:

    • 谢谢,但我想做的是中断内存变化,不一定是变量。
    • 这是用于 Java 还是 C/C++ 还是什么?
    • 您可以使用硬件断点来执行此操作。不确定 eclipse 是否为此提供任何其他工具。
    • 谢谢。这里有更多信息:mcuoneclipse.com/2012/04/29/…
    【解决方案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.
    

    【讨论】:

    • 这适用于我的 S32 Design Studio for ARM(S32K144 - NXP 的 Eclipse IDE)。我必须打开内存浏览器,输入我感兴趣的数组并将表达式添加为断点。谢谢。
    【解决方案3】:

    在 Eclipse Oxygen 中使用观察点:

    1. 在表达式视图(窗口 > 显示视图 > 表达式)中,添加一个表达式,例如:*(uint8_t*)0x231cc528。演员表告诉 Eclipse 内存位置大小。
    2. 右键单击添加的表达式并选择“添加观察点”。
    3. 可以在“断点”视图中编辑和控制生成的观察点。
    4. 编辑观察点可能很重要。如果你想例如检测其他线程所做的更改:右键单击“Breakpoints”视图中的 Watchpoint,选择 Breakpoint Properties...> Filter,取消选中“Restrict to Selected Processes and Threads”

    【讨论】:

      猜你喜欢
      • 2012-04-06
      • 2010-10-14
      • 2015-12-28
      • 1970-01-01
      • 2014-09-28
      • 2014-10-12
      • 2010-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多