在像IntelliJ这样的IDE中,我可以在断点处停止执行,然后使用片段视图执行任意代码。
使用附加到进程的命令行调试器JDB时,我可以这样做吗?
我怀疑在表面下IntelliJ使用JVM公开的一些功能来允许任意代码执行。所以它也应该存在于命令行调试器中。
答案 0 :(得分:0)
你可以使用" eval"命令这样做:
主课程的:
public class Main {
public static void main(String [] arg) {
int a = 1;
int b = 3;
System.out.println("a+b=" + (a+b));
}
}
你可以按照以下方式评估jdb中的代码(确保用-g编译:javac -g Main.java)
VM Started: Set deferred breakpoint Main.main
Breakpoint hit: "thread=main", Main.main(), line=5 bci=0
5 int a = 1;
main[1] step
>
Step completed: "thread=main", Main.main(), line=6 bci=2
6 int b = 3;
main[1] eval a+1
a+1 = 2
main[1] eval java.lang.System.out.println("Hello: " + a);
Hello: 1
java.lang.System.out.println("Hello: " + a); = <void value>