diff options
author | Thomas Miedema <thomasmiedema@gmail.com> | 2015-02-17 08:39:08 -0600 |
---|---|---|
committer | Austin Seipp <austin@well-typed.com> | 2015-02-17 09:06:11 -0600 |
commit | a82364c9410d35fa9cb5031d553212267c3628c5 (patch) | |
tree | e08ddc95d58c4d589969a330804dc1889130e334 /rts/eventlog | |
parent | 310b6365c91731a797c7e592ebda9ca881f662d4 (diff) | |
download | haskell-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.c | 13 | ||||
-rw-r--r-- | rts/eventlog/EventLog.h | 4 |
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); /* |