X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FTrace.c;h=20debdca5b265a1b183efa54a0f8e708b31d93ae;hb=d71615757d0462b1721ee3664c5fa9f79325d666;hp=7194651339e0d9b7a13abbecb0aaf5fbcc1f7f78;hpb=c425356c830621e9480d547eff24134037ced63b;p=ghc-hetmet.git diff --git a/rts/Trace.c b/rts/Trace.c index 7194651..20debdc 100644 --- a/rts/Trace.c +++ b/rts/Trace.c @@ -19,7 +19,26 @@ #include "Threads.h" #include "Printer.h" -StgWord32 classes_enabled; // not static due to inline funcs +// debugging flags, set with +RTS -D +int DEBUG_sched; +int DEBUG_interp; +int DEBUG_weak; +int DEBUG_gccafs; +int DEBUG_gc; +int DEBUG_block_alloc; +int DEBUG_sanity; +int DEBUG_stable; +int DEBUG_stm; +int DEBUG_prof; +int DEBUG_gran; +int DEBUG_par; +int DEBUG_linker; +int DEBUG_squeeze; +int DEBUG_hpc; +int DEBUG_sparks; + +// events +int TRACE_sched; #ifdef THREADED_RTS static Mutex trace_utx; @@ -37,7 +56,7 @@ void initTracing (void) #ifdef DEBUG #define DEBUG_FLAG(name, class) \ - if (RtsFlags.DebugFlags.name) classes_enabled |= class; + class = RtsFlags.DebugFlags.name ? 1 : 0; DEBUG_FLAG(scheduler, DEBUG_sched); DEBUG_FLAG(scheduler, TRACE_sched); // -Ds enabled all sched events @@ -58,7 +77,7 @@ void initTracing (void) #endif #define TRACE_FLAG(name, class) \ - if (RtsFlags.TraceFlags.name) classes_enabled |= class; + class = RtsFlags.TraceFlags.name ? 1 : 0; TRACE_FLAG(scheduler, TRACE_sched); @@ -200,8 +219,11 @@ static void traceCap_stderr(Capability *cap, char *msg, va_list ap) } #endif -void traceCap_(Capability *cap, char *msg, va_list ap) +void traceCap_(Capability *cap, char *msg, ...) { + va_list ap; + va_start(ap,msg); + #ifdef DEBUG if (RtsFlags.TraceFlags.trace_stderr) { traceCap_stderr(cap, msg, ap); @@ -210,6 +232,8 @@ void traceCap_(Capability *cap, char *msg, va_list ap) { postCapMsg(cap, msg, ap); } + + va_end(ap); } #ifdef DEBUG @@ -225,8 +249,11 @@ static void trace_stderr(char *msg, va_list ap) } #endif -void trace_(char *msg, va_list ap) +void trace_(char *msg, ...) { + va_list ap; + va_start(ap,msg); + #ifdef DEBUG if (RtsFlags.TraceFlags.trace_stderr) { trace_stderr(msg, ap); @@ -235,6 +262,8 @@ void trace_(char *msg, va_list ap) { postMsg(msg, ap); } + + va_end(ap); } void traceThreadStatus_ (StgTSO *tso USED_IF_DEBUG)