2

我正在使用 J9 VM 在 Linux 机器 (BusyBox) 上运行我的应用程序。在我的 Windows 环境(也包括 J9)上进行开发和测试时,我会获得有关堆栈跟踪的完整调试信息。这不会发生在 Linux 机器上。

我已尽我所知检查了这两个虚拟机配置。此外,我已经剥离了不在 Linux J9 安装中的库的 Windows J9 安装。

有谁知道如何获取调试信息而不是“未知来源”?是否有任何配置可以打印此信息?

窗口输出:

>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 编译。)

谢谢!

4

1 回答 1

2

根据这篇文档,可以使用以下选项来显示缺失的信息:

-Xlinenumbers
在堆栈跟踪中显示行号以进行调试。另请参见 -Xnolinenumbers。默认情况下,行号是打开的。

显然,默认情况下,行号是关闭的。但是,正如文件所述,该选项是“非标准的,如有更改,恕不另行通知”。它现在可以工作。

希望这个答案对将来的任何人都有用。

于 2010-09-16T16:49:04.730 回答