Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java/eclipse中的数据断点 当你开发C++时,你会发现数据断点的惊人特性,当数据在内存中某个地址发生变化时触发。_Java_Eclipse_Breakpoints - Fatal编程技术网

java/eclipse中的数据断点 当你开发C++时,你会发现数据断点的惊人特性,当数据在内存中某个地址发生变化时触发。

java/eclipse中的数据断点 当你开发C++时,你会发现数据断点的惊人特性,当数据在内存中某个地址发生变化时触发。,java,eclipse,breakpoints,Java,Eclipse,Breakpoints,在eclipse中开发java时是否有类似的特性 谢谢 编辑:关于“值更改时挂起”功能:我的印象是执行必须仍然到达断点所在的行。问题是,我希望它在值更改时立即在任何位置触发。最近的事情是编辑断点属性。您可以添加条件来检查不同的值。另一种方法是向setter方法添加断点 您可以通过右键单击断点视图中已设置的断点来设置断点属性。在断点属性下,您可以选择将其设置为条件并选中单选按钮“值更改时挂起” 右键单击断点并选择断点属性 在打开的屏幕中,选择:Conditional->Suspend when v

在eclipse中开发java时是否有类似的特性

谢谢


编辑:关于“值更改时挂起”功能:我的印象是执行必须仍然到达断点所在的行。问题是,我希望它在值更改时立即在任何位置触发。

最近的事情是编辑断点属性。您可以添加条件来检查不同的值。另一种方法是向setter方法添加断点


您可以通过右键单击断点视图中已设置的断点来设置断点属性。

在断点属性下,您可以选择将其设置为条件并选中单选按钮“值更改时挂起”

右键单击断点并选择
断点属性


在打开的屏幕中,选择:
Conditional->Suspend when value change

据我所知,Eclipse中没有这样的通用功能。但是,您可以为现有断点提供一些条件:

在代码中的某个地方添加断点。然后,在“断点”视图中,右键单击它,然后选择“断点属性”。在面板中,您可以添加一个必须验证的条件,以使应用程序在此断点上停止(例如
if(foo>0)


这并不是您想要的,但我认为Eclipse没有提供这样的功能。

您可以在字段上设置观察点:将光标放在声明字段的行上,然后选择菜单
Run->Toggle watchpoint

或者双击该行的左边距设置断点

添加监视点后,您可以更改其属性,如
suspend on field access
suspend on field modification
。只需右键单击左边距的观察点,然后选择断点属性…

搜索“监视点”帮助以获取更多信息:

观察点是一个特殊的断点,当给定表达式的值发生变化时,它会停止应用程序的执行,而不指定可能发生的位置


使用变量视图:

  • 右键单击该字段并选择“切换观察点”,然后
  • 再次右键单击同一实例并选择“实例断点…”,这允许您将特定断点限制到给定实例

请注意,性能可能不如使用内存硬件断点(例如在VC++中)时好。

谢谢,但如何准确地向要监视的对象提供对象或变量?在单选按钮下方的字段中,输入变量名称(类似于此.foo)。有自动完成功能。谢谢,但我如何为我要监视的对象提供对象或变量?请在下面的字段中输入。当然,这与变量改变时中断并不相同,但是如果程序经常通过瓶颈,那么可以在那里设置断点,理论上只有当某个值改变时才会中断。太好了!正是我需要的!这是有用的(而且我+1'ed),但它仍然不是问题的答案。此中断在该声明的任何实例上,而不是在特定实例上。我只有在字段不是final时才有watchpoint选项可用。如何观看对最终对象的访问?(我想知道何时向地图添加或从地图中检索项目。)这应该是另一个问题。。。但奇怪的是,对于Eclipse Mars,在最终变量(仅使用ArrayList和Path进行测试)上设置观察点没有问题,但是,无论是否为最终变量,这都不会观察保存在变量中的对象的内容-它只会观察变量本身的内容,也就是说,在您的情况下,如果map实例发生了更改。您可以在(散列)映射的相应方法上放置断点,并添加一个条件以检查
是否是您要监视的实例。此选项是否仍然存在?在Eclipse 2018-09(4.9.0)中,我只能在断点属性中设置线程过滤器。