1

我正在远程调试 Java 应用程序,调试器显示的信息与我预期的不同。源文件已正确链接。jvm优化是否有可能改变指令的顺序?

4

2 回答 2

1

这取决于。

如果 JVM(尤其是 Hotspot 或 JIT 编译器)可以确定结果相同,它可能会更改指令。

使用 Oracle JVM,您可以提供-Xint禁用 JIT 和热点的选项,并且可以确保执行的代码与编写的代码相同。

于 2013-07-10T08:34:21.777 回答
0

例如,在远程调试时,当我对尚未推送到服务器的代码进行更改时,我遇到了不一致的情况。所以当我在我的服务器上调试旧版本时,调试器有时会指向我的代码中的行,这些行要么是空的,要么是不同的方法,因为它仍然引用了以前相关的行号。当我同步服务器和我的本地代码存储库时,一切都很好了。

于 2013-07-10T08:55:23.577 回答