< prev index next >
src/share/vm/prims/jvm.cpp
Print this page
rev 9380 : 8237499: JFR: Include stack trace in the ThreadStart event
Reviewed-by: egahlin
@@ -94,10 +94,11 @@
#if INCLUDE_ALL_GCS
#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp"
#endif // INCLUDE_ALL_GCS
#include <errno.h>
+#include <jfr/recorder/jfrRecorder.hpp>
#ifndef USDT2
HS_DTRACE_PROBE_DECL1(hotspot, thread__sleep__begin, long long);
HS_DTRACE_PROBE_DECL1(hotspot, thread__sleep__end, int);
HS_DTRACE_PROBE_DECL0(hotspot, thread__yield);
@@ -3160,10 +3161,19 @@
}
THROW_MSG(vmSymbols::java_lang_OutOfMemoryError(),
"unable to create new native thread");
}
+#if INCLUDE_JFR
+ if (JfrRecorder::is_recording() && EventThreadStart::is_enabled() &&
+ EventThreadStart::is_stacktrace_enabled()) {
+ JfrThreadLocal* tl = native_thread->jfr_thread_local();
+ // skip Thread.start() and Thread.start0()
+ tl->set_cached_stack_trace_id(JfrStackTraceRepository::record(thread, 2));
+ }
+#endif
+
Thread::start(native_thread);
JVM_END
// JVM_Stop is implemented using a VM_Operation, so threads are forced to safepoints
< prev index next >