Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用系统探查器禁用Java堆栈框架优化或概要文件堆栈?_Java_Linux_Jvm_Jvm Hotspot_Dtrace - Fatal编程技术网

如何使用系统探查器禁用Java堆栈框架优化或概要文件堆栈?

如何使用系统探查器禁用Java堆栈框架优化或概要文件堆栈?,java,linux,jvm,jvm-hotspot,dtrace,Java,Linux,Jvm,Jvm Hotspot,Dtrace,系统探查器,如DTrace和Linux perf_事件,能够从JVM中探查堆栈跟踪。现在,撇开符号不谈(这是另一个问题),DTrace和perf_事件都收集了许多仅为1帧的堆栈。这些是不完整的部分堆栈 我尝试了DTrace jstack()和Linux perf_事件,包括帧指针和dwarf堆栈展开 我相信这是由于热点编译优化的框架。有没有办法禁用此优化,以便标准系统探查器(如Solaris DTrace和Linux perf)工作 我已经尝试了以下选项:-XX:+DeoptimizeRando

系统探查器,如DTrace和Linux perf_事件,能够从JVM中探查堆栈跟踪。现在,撇开符号不谈(这是另一个问题),DTrace和perf_事件都收集了许多仅为1帧的堆栈。这些是不完整的部分堆栈

我尝试了DTrace jstack()和Linux perf_事件,包括帧指针和dwarf堆栈展开

我相信这是由于热点编译优化的框架。有没有办法禁用此优化,以便标准系统探查器(如Solaris DTrace和Linux perf)工作


我已经尝试了以下选项:-XX:+DeoptimizeRandom-XX:MaxInlineSize=0-XX:-OmitStackTraceInFastThrow-XX:+UnlockDiagnosticVMOptions-XX:+ShowHiddenFrames

这是一个JVM问题,最好用bug来描述:

虽然这描述了DTrace jstack()的问题,但我相信同样的优化(使用帧指针作为寄存器)正在破坏perf_事件

这可能在JDK 9中得到修复。见:

感谢hotspot开发者的回答