summaryrefslogtreecommitdiff
path: root/rts/Trace.c
diff options
context:
space:
mode:
Diffstat (limited to 'rts/Trace.c')
-rw-r--r--rts/Trace.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/rts/Trace.c b/rts/Trace.c
index 7a08c0f817..9da2115e2e 100644
--- a/rts/Trace.c
+++ b/rts/Trace.c
@@ -708,6 +708,28 @@ void traceUserMsg(Capability *cap, char *msg)
traceFormatUserMsg(cap, "%s", msg);
}
+void traceUserMarker(Capability *cap, char *markername)
+{
+ /* Note: traceUserMarker is special since it has no wrapper (it's called
+ from cmm code), so we check eventlog_enabled and TRACE_user here.
+ */
+#ifdef DEBUG
+ if (RtsFlags.TraceFlags.tracing == TRACE_STDERR && TRACE_user) {
+ ACQUIRE_LOCK(&trace_utx);
+ tracePreface();
+ debugBelch("cap %d: User marker: %s\n", cap->no, markername);
+ RELEASE_LOCK(&trace_utx);
+ } else
+#endif
+ {
+ if (eventlog_enabled && TRACE_user) {
+ postUserMarker(cap, markername);
+ }
+ }
+ dtraceUserMarker(cap->no, markername);
+}
+
+
void traceThreadLabel_(Capability *cap,
StgTSO *tso,
char *label)