This makes it easier to analyze exceptions without modifying the JVM or the app to print call stacks:
$ java -Xlog:exceptions,exceptions+stacktrace -cp foo.jar Foo
[2.047s][info ][exceptions] Exception <a 'java/lang/NullPointerException'{0x00000004736ab200}>
[ ] thrown in interpreter method <{method} {0x000070488c9f2a50} 'isLoggable' '(Ljava/lang/System$Logger$Level;)Z' in 'jdk/internal/logger/AbstractLoggerWrapper'>
[ ] at bci 5 for thread 0x000070499802e730 (DestroyJavaVM)
[2.048s][info][exceptions,stacktrace] at jdk.internal.logger.AbstractLoggerWrapper.isLoggable([java.base@25-internal](mailto:java.base@25-internal)/AbstractLoggerWrapper.java:68)
[2.048s][info][exceptions,stacktrace] at java.lang.ProcessBuilder.start([java.base@25-internal](mailto:java.base@25-internal)/ProcessBuilder.java:1093)
[2.048s][info][exceptions,stacktrace] at java.lang.ProcessBuilder.start([java.base@25-internal](mailto:java.base@25-internal)/ProcessBuilder.java:1044)
[2.048s][info][exceptions,stacktrace] at jdk.internal.misc.CDS$ProcessLauncher.execWithJavaToolOptions([java.base@25-internal](mailto:java.base@25-internal)/CDS.java:548)
$ java -Xlog:exceptions,exceptions+stacktrace -cp foo.jar Foo
[2.047s][info ][exceptions] Exception <a 'java/lang/NullPointerException'{0x00000004736ab200}>
[ ] thrown in interpreter method <{method} {0x000070488c9f2a50} 'isLoggable' '(Ljava/lang/System$Logger$Level;)Z' in 'jdk/internal/logger/AbstractLoggerWrapper'>
[ ] at bci 5 for thread 0x000070499802e730 (DestroyJavaVM)
[2.048s][info][exceptions,stacktrace] at jdk.internal.logger.AbstractLoggerWrapper.isLoggable([java.base@25-internal](mailto:java.base@25-internal)/AbstractLoggerWrapper.java:68)
[2.048s][info][exceptions,stacktrace] at java.lang.ProcessBuilder.start([java.base@25-internal](mailto:java.base@25-internal)/ProcessBuilder.java:1093)
[2.048s][info][exceptions,stacktrace] at java.lang.ProcessBuilder.start([java.base@25-internal](mailto:java.base@25-internal)/ProcessBuilder.java:1044)
[2.048s][info][exceptions,stacktrace] at jdk.internal.misc.CDS$ProcessLauncher.execWithJavaToolOptions([java.base@25-internal](mailto:java.base@25-internal)/CDS.java:548)
- duplicates
-
JDK-8344165 Trace exceptions with a complete call-stack
-
- Open
-
- relates to
-
JDK-8328639 Add support for including a native stack trace in -Xlog:exceptions
-
- Open
-
- links to
-
Review(master) openjdk/jdk/25522