Going through https://www.oracle.com/technetwork/java/javaseproducts/mission-control/java-mission-control-wp-2008279.pdf, I ran into the following quote:
Most technologies used today to monitor, manage, and profile the Java runtime use fairly intrusive technologies, like byte code instrumentation and JVMTI.
which made me wonder about the way that JFR does stack trace sampling.
The closest thing that I could find to an answer on the web was this blog post: http://psy-lob-saw.blogspot.com/2016/06/the-pros-and-cons-of-agct.html, mentioning that profilers such as Honest profiler and async-profiler use the not-so-documented AsyncGetCallTrace, but the fact is that it does not mention the specific way in which JFR does stack trace sampling/recording.
Does anyone here have any insight into the JFR internals regarding this topic?