summaryrefslogtreecommitdiff
path: root/rts/eventlog
diff options
context:
space:
mode:
authorThomas Miedema <thomasmiedema@gmail.com>2015-02-17 08:39:08 -0600
committerAustin Seipp <austin@well-typed.com>2015-02-17 09:06:11 -0600
commita82364c9410d35fa9cb5031d553212267c3628c5 (patch)
treee08ddc95d58c4d589969a330804dc1889130e334 /rts/eventlog
parent310b6365c91731a797c7e592ebda9ca881f662d4 (diff)
downloadhaskell-a82364c9410d35fa9cb5031d553212267c3628c5.tar.gz
Don't truncate traceEvents to 512 bytes (#8309)
Summary: Don't call postLogMsg to post a user msg, because it truncates messages to 512 bytes. Rename traceCap_stderr and trace_stderr to vtraceCap_stderr and trace_stderr, to signal that they take a va_list (similar to vdebugBelch vs debugBelch). See #3874 for the original reason behind traceFormatUserMsg. See the commit msg in #9395 (d360d440) for a discussion about using null-terminated strings vs strings with an explicit length. Test Plan: Run `cabal install ghc-events` and inspect the result of `ghc-events show` on an eventlog file created with `ghc -eventlog Test.hs` and `./Test +RTS -l`, where Test.hs contains: ``` import Debug.Trace main = traceEvent (replicate 510 'a' ++ "bcd") $ return () ``` Depends on D655. Reviewers: austin Reviewed By: austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D656 GHC Trac Issues: #8309
Diffstat (limited to 'rts/eventlog')
-rw-r--r--rts/eventlog/EventLog.c13
-rw-r--r--rts/eventlog/EventLog.h4
2 files changed, 5 insertions, 12 deletions
diff --git a/rts/eventlog/EventLog.c b/rts/eventlog/EventLog.c
index f830ec19a0..5f021a68b6 100644
--- a/rts/eventlog/EventLog.c
+++ b/rts/eventlog/EventLog.c
@@ -1078,11 +1078,6 @@ void postCapMsg(Capability *cap, char *msg, va_list ap)
postLogMsg(&capEventBuf[cap->no], EVENT_LOG_MSG, msg, ap);
}
-void postUserMsg(Capability *cap, char *msg, va_list ap)
-{
- postLogMsg(&capEventBuf[cap->no], EVENT_USER_MSG, msg, ap);
-}
-
void postEventStartup(EventCapNo n_caps)
{
ACQUIRE_LOCK(&eventBufMutex);
@@ -1099,10 +1094,10 @@ void postEventStartup(EventCapNo n_caps)
RELEASE_LOCK(&eventBufMutex);
}
-void postUserMarker(Capability *cap, char *markername)
+void postUserEvent(Capability *cap, EventTypeNum type, char *msg)
{
EventsBuf *eb;
- int size = strlen(markername);
+ int size = strlen(msg);
eb = &capEventBuf[cap->no];
@@ -1115,9 +1110,9 @@ void postUserMarker(Capability *cap, char *markername)
}
}
- postEventHeader(eb, EVENT_USER_MARKER);
+ postEventHeader(eb, type);
postPayloadSize(eb, size);
- postBuf(eb, (StgWord8*) markername, size);
+ postBuf(eb, (StgWord8*) msg, size);
}
void postThreadLabel(Capability *cap,
diff --git a/rts/eventlog/EventLog.h b/rts/eventlog/EventLog.h
index 85370e9843..9c2f265970 100644
--- a/rts/eventlog/EventLog.h
+++ b/rts/eventlog/EventLog.h
@@ -45,12 +45,10 @@ void postEventAtTimestamp (Capability *cap, EventTimestamp ts,
void postMsg(char *msg, va_list ap);
-void postUserMsg(Capability *cap, char *msg, va_list ap);
+void postUserEvent(Capability *cap, EventTypeNum type, char *msg);
void postCapMsg(Capability *cap, char *msg, va_list ap);
-void postUserMarker(Capability *cap, char *markername);
-
void postEventStartup(EventCapNo n_caps);
/*