-1

我在 C++ 中有一个 exe,通过它我通过 JNI 层实用程序使用 jar 文件。C++ 和 Java 都有自己独立的日志记录功能,我面临一个独特的问题,在记录 Java 模块时,StackTraceElement 为 getLineNumber() 调用提供 -1 值,而 Classname、methodname 是正确的,即使我尝试打印整个堆栈对于每个 StackTraceElement,将 getLineNumber 值设为 -1。无法找出根本原因。任何投入都将是可观的。

4

1 回答 1

3

可能编译代码时没有包含调试信息。从javac手册页

-g
生成所有调试信息,包括局部变量。默认情况下,只生成行号和源文件信息。

-g:none
不生成任何调试信息。

-g:{keyword list}
仅生成某些类型的调试信息,由逗号分隔的关键字列表指定。有效关键字有:
source源文件调试信息
lines行号调试信息
vars局部变量调试信息

于 2013-05-13T12:40:11.487 回答