在 intellij 上调试评估表达式
Posted
技术标签:
【中文标题】在 intellij 上调试评估表达式【英文标题】:debug an evaluate expression on intellij 【发布时间】:2015-12-11 16:12:10 【问题描述】:使用评估表达式/代码片段:
https://www.jetbrains.com/idea/help/evaluating-expressions.html
是否可以在 intellij 上调试评估的表达式/代码片段?
在 Eclipse 上,如果您在显示窗口上启动代码评估并且该代码内部有任何断点,则 Eclipse 调试器会在该断点处停止。如果你再试一次,eclipse 说它可以在嵌套调试会话上执行检查。
Intellij 似乎在不同的会话中启动表达式。
我在这方面的工作流程是在“任何一行”代码上停止并添加我想要评估的片段以进行 Q&D 调试。很多时候这会导致调试重新启动。
【问题讨论】:
我很确定这是不可能的,但我没有任何官方来源...... 我也等了好几年了。将是一个令人难以置信的强大功能! 【参考方案1】:不幸的是,这在 Intellij 14 中是不可能的,并在您提供的官方链接中说明:
如果在表达式求值中调用的方法在其主体中有断点,则该断点将被忽略。
为了消除您提到的频繁重启调试会话的问题,我使用了以下解决掉帧调试功能的方法:
-
进入方法并在返回之前使用丢帧功能回退到前一个堆栈帧。在下面的屏幕截图中查看下拉框图标的位置:
现在可以使用不同的参数重新运行此方法,而无需重新启动调试会话(可以使用“评估表达式”对话框设置参数)。
【讨论】:
这对 EL 表达式没有帮助 非常感谢您!我一直在寻找这样的调试方法 这太神奇了,谢谢你的分享,我觉得这可以节省我的工作时间!【参考方案2】:该功能在 IntelliJ IDEA 2019.2 中不可用
我使用的解决方法是更新代码如下,
Boolean shouldExecute = false;
if(shouldExecute)
//method call
在调试会话期间,我会将 shouldExecute 标志更改为 true。这样我可以在需要时调试方法调用。
粗略,这只是一种解决方法,我需要稍后删除此标志。
【讨论】:
【参考方案3】:Alt + F8 是表达式或变量求值的快捷方式。
但是,您也可以选择变量,右键单击它并按照this article 中的说明进行评估。
【讨论】:
【参考方案4】:选择您要评估的变量并按Alt + F8
。详细步骤在这里:
https://www.websparrow.org/misc/shortcut-key-to-evaluate-expression-variable-in-intellij-idea
【讨论】:
以上是关于在 intellij 上调试评估表达式的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ:求值lambda表达式在调试时引发编译错误
尝试调试 WCF 服务代码(MSVS 2013)时,在“添加监视”功能上获取“表达式评估器中的内部错误”
无法使用 Visual Studio 2013 调试托管代码(“无法评估表达式”错误 - 正在使用调试版本)(请注意,VS 2012 有效)