gpt4 book ai didi

eclipse - 在 Eclipse 中,有没有办法禁用断点,直到首先命中另一个断点?

转载 作者:行者123 更新时间:2023-12-03 07:41:46 25 4
gpt4 key购买 nike

在 Eclipse 中,有没有办法禁用断点,直到首先命中另一个断点?

最佳答案

这是一个很大的黑客攻击,但它是一个功能性的解决方法:

调用“触发”位置断点 1 和目标位置断点 2。我们希望断点 2 触发当且仅当执行已通过断点 1。

在每个位置设置条件断点。

对于断点 1,将条件设置为 System.setProperty("breaknow", "breaknow") == ""。这个条件永远不会成立,但会设置一个系统属性,我们可以在断点 2 处读取该属性。

对于断点 2,将条件设置为 System.clearProperty("breaknow") != null。当系统属性设置时,此条件将触发,并清除它(因此我们可以在需要时重复)。

正如我所说,这是一个黑客行为,但它似乎有效。我提交了一个 Eclipse 增强请求,以将链接或链接断点实现为 native 功能 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=390590)。不幸的是,我没有足够的带宽来自己实现它,但也许有一天我们会得到对更干净的解决方案的支持。

一个警告(适用于所有条件断点,而不仅仅是这个技巧):根据我的经验,设置条件断点似乎会阻止 JIT 编译感兴趣的方法,而是以解释模式运行它。或者,它可能允许第一个 C1 JIT 阶段但阻止第二阶段 C2 编译器优化?

无论哪种情况,您都应该意识到,如果设置了条件断点,您正在调试的方法的运行速度将会相当慢。这通常不是问题,但在调试非常紧密的内部循环时,我发现最好回到(草率的) if (x) {//Do 一些无用的东西并在此处设置断点} 方法。

关于eclipse - 在 Eclipse 中,有没有办法禁用断点,直到首先命中另一个断点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4685241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com