我正在使用J9 VM在Linux机器(BusyBox)上运行我的应用程序。 在我的Windows环境中开发和测试时,也使用J9,我可以获得有关堆栈跟踪的完整调试信息。这不会发生在Linux机器上。
我已根据我的知识许可检查了两个VM配置。另外,我已经剥离了我的Windows J9安装库,这些库不在Linux J9安装上。
有没有人知道如何获取调试信息而不是“未知来源”?是否有打印此信息的配置?
Windows输出:
>j9 -jcl:foun11 Test
java.lang.Exception
at Test.doStuff(Test.java:6)
at Test.main(Test.java:11)
Linux输出:
#j9 -jcl:foun11 Test
java.lang.Exception
at Test.doStuff(Unknown Source)
at Test.main(Unknown Source)
(两个输出都引用相同的Test.class,使用-g:lines,vars,source编译。)
谢谢!
答案 0 :(得分:2)
根据这篇documentation,以下选项可用于显示缺失的信息:
-Xlinenumbers
显示堆栈跟踪中的行号以进行调试。另见-Xnolinenumbers。默认情况下,行号已打开。
显然,默认情况下,行号已关闭。但是,正如文件所述,该选项是“非标准的,如有更改,恕不另行通知”。它现在可以使用。
希望这个答案对将来的任何人都有用。