系统分析器(如DTrace和Linux perf_events)能够分析来自JVM的堆栈跟踪.现在,除了符号(这是另一个问题),DTrace和perf_events都会收集许多只有1帧的堆栈.这些是部分不完整的堆栈.
我尝试过DTrace jstack()和Linux perf_events,同时指向帧指针和矮化堆栈.
我相信这是由于热点编译优化的帧.有没有办法禁用此优化,以便标准系统分析器(如Solaris DTrace和Linux perf)工作?
我已经尝试了以下选项:-XX:+ DeoptimizeRandom -XX:MaxInlineSize = 0 -XX:-OmitStackTraceInFastThrow -XX:+ UnlockDiagnosticVMOptions -XX:+ ShowHiddenFrames