summaryrefslogtreecommitdiff
path: root/rts/RtsFlags.c
diff options
context:
space:
mode:
authorSimon Marlow <simonmar@microsoft.com>2006-06-08 13:01:01 +0000
committerSimon Marlow <simonmar@microsoft.com>2006-06-08 13:01:01 +0000
commitd2847b0578d5c143bb325ca66c948d1a1cb08354 (patch)
tree529905a53d9f754bab7a24465e11caa8d7e566be /rts/RtsFlags.c
parent04a046e8fcf175cd00d3ac87510b0b594c8f91e1 (diff)
downloadhaskell-d2847b0578d5c143bb325ca66c948d1a1cb08354.tar.gz
Add new RTS flags for tracing:
-vs Trace scheduler events (see also -Ds with -debug) -vt Time-stamp trace messages the intention is that we will pipe the -vs output into a profile-generating tool. This commit includes the flags only, functionality to follow.
Diffstat (limited to 'rts/RtsFlags.c')
-rw-r--r--rts/RtsFlags.c32
1 files changed, 29 insertions, 3 deletions
diff --git a/rts/RtsFlags.c b/rts/RtsFlags.c
index 78c8d2a6b9..7e836afefc 100644
--- a/rts/RtsFlags.c
+++ b/rts/RtsFlags.c
@@ -1,8 +1,7 @@
-
/* -----------------------------------------------------------------------------
*
* (c) The AQUA Project, Glasgow University, 1994-1997
- * (c) The GHC Team, 1998-1999
+ * (c) The GHC Team, 1998-2006
*
* Functions for parsing the argument list.
*
@@ -299,6 +298,9 @@ void initRtsFlagsDefaults(void)
RtsFlags.TickyFlags.showTickyStats = rtsFalse;
RtsFlags.TickyFlags.tickyFile = NULL;
#endif
+
+ RtsFlags.TraceFlags.timestamp = rtsFalse;
+ RtsFlags.TraceFlags.sched = rtsFalse;
}
static const char *
@@ -396,6 +398,9 @@ usage_text[] = {
" (0 or no argument means switch as often as possible)",
" the default is .02 sec; resolution is .02 sec",
"",
+" -vs Trace scheduler events (see also -Ds with -debug)",
+" -vt Time-stamp trace messages",
+"",
#if defined(DEBUG)
" -Ds DEBUG: scheduler",
" -Di DEBUG: interpreter",
@@ -1027,7 +1032,7 @@ error = rtsTrue;
}
) break;
- case 'q':
+ case 'q':
switch (rts_argv[arg][2]) {
case '\0':
errorBelch("incomplete RTS option: %s",rts_argv[arg]);
@@ -1089,6 +1094,27 @@ error = rtsTrue;
}
) break;
+ /* =========== TRACING ---------=================== */
+
+ case 'v':
+ switch(rts_argv[arg][2]) {
+ case '\0':
+ errorBelch("incomplete RTS option: %s",rts_argv[arg]);
+ error = rtsTrue;
+ break;
+ case 't':
+ RtsFlags.TraceFlags.timestamp = rtsTrue;
+ break;
+ case 's':
+ RtsFlags.TraceFlags.sched = rtsTrue;
+ break;
+ default:
+ errorBelch("unknown RTS option: %s",rts_argv[arg]);
+ error = rtsTrue;
+ break;
+ }
+ break;
+
/* =========== EXTENDED OPTIONS =================== */
case 'x': /* Extend the argument space */