Java 任务控制代码分析器为空

Java Mission Control code profiler empty

当正在分析的应用程序将 XX:MaxJavaStackTraceDepth 系统 属性 设置为 -1 时,我在使用 Java Mission Control 时遇到问题。

重现:

  1. 启动 java 应用程序:java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:MaxJavaStackTraceDepth=-1
  2. 使用默认设置为该应用制作飞行记录
  3. 查看生成的记录中的 "Code" 部分。它会是空的,像这样:http://imgur.com/if27cUu

系统:Ubuntu14.04/amd64。 Java1.8.0_72。

对于为什么会发生这种情况有什么建议吗?我想保持我的堆栈跟踪不受限制(由于一些罕见的堆栈溢出异常很难找到,除非你有堆栈跟踪的开头)。

-1 值来自这里:http://stas-blogspot.blogspot.se/2011/07/most-complete-list-of-xx-options-for.html#MaxJavaStackTraceDepth

编辑: 原题错怪java.endorsed.dirs系统属性。我有一堆属性组,一定是在淘汰的过程中弄糊涂了。

我已经能够重现 -XX:MaxJavaStackTraceDepth=-1 的问题,并且至少发现了一个相关错误 - https://bugs.openjdk.java.net/browse/JDK-7179701,这是一个目前针对 [=13= 的低优先级错误] 10....我的建议是改用 -XX:FlightRecorderOptions=stackdepth=2048。我也不能说我对这个选项做过很多试验,但至少它是为与 JFR 一起工作而设计的。