Che*_*rry 28 java debugging intellij-idea
假设我有这样的java代码(仅作为示例):
public void someMethod(){
int a = 3;
int b = 2; // <-- stay debug here
a = b + 2;
System.out.prinln(a);
}
Run Code Online (Sandbox Code Playgroud)
可以跳过执行"int a = b + 2;" 然后移民到"System.out.prinln(a);"?
PS我使用Intellij Idea 12.
And*_*and 29
调试器无法执行部分代码.
但是,可以执行额外的代码并更改变量的值,因此如果您需要在调试期间从执行中排除一行,则必须更改代码以准备进行此类调试.
public void someMethod() {
int a = 3;
int b = 2;
boolean shouldRun = true;
if (shouldRun) {
a = b + 2;
}
System.out.prinln(a);
}
Run Code Online (Sandbox Code Playgroud)
然后,您将设置一个断点,在不停止执行的情况下更改shouldRun的值.它可以这样做.
注意
Kai*_*lyn 16
IntelliJ 最近发布了一篇关于名为Jump to Line的插件的博客文章,该插件可以实现此目的,尽管 IntelliJ 本身没有此功能。令人惊讶的是,Visual Studio 已经拥有此功能这么多年了,IntelliJ 仍然没有此功能!
https://blog.jetbrains.com/idea/2020/08/jump-to-any-line-while-debugging/
只有在使用hotswapping或换句话说代码重新加载工具时才可以跳过行 - 在运行时添加代码更改/新代码.Hotswapping是在不关闭系统的情况下更换组件的功能.Hotswapping还可以指代改变程序运行代码而无需中断其执行的能力.
有各种热门工具,如:JRebel(https://zeroturnaround.com/software/jrebel/)或HotSwapAgent(http://www.hotswapagent.org/)
您可以避免重建整个应用程序以重新加载代码更改,这可以节省大量时间.不要运行完整的构建过程,只需使用IDE中内置的编译器,hotSwap代理/工具就会将代码重新加载到JVM中.
在这种情况下,它实际上不会跳过,但您可以只是注释/更改行并重新加载它.这个工具非常棒!!!! 它大大加快了开发/调试过程
归档时间: |
|
查看次数: |
19649 次 |
最近记录: |