SYNOPSIS
#include <trace.h>
int trace(int traceflags)
DESCRIPTION
Sets the trace flags and returns the old trace flags. When
tracing is on, a lot of information is printed during
execution and too much output can crash your connection or
even the whole driver.
Tracing is done on a per-connection basis: each interactive(!)
user may specifiy their own tracelevel and -prefix. Each gets the
traceoutput for just the code executed during the evaluation
of the commands he entered.
The trace bits are:
TRACE_NOTHING ( 0): stop tracing.
TRACE_CALL ( 1): trace all calls to lfuns.
TRACE_CALL_OTHER ( 2): trace call_others()s.
TRACE_RETURN ( 4): trace function returns.
TRACE_ARGS ( 8): print function arguments and results.
TRACE_EXEC ( 16): trace all executed instructions.
TRACE_HEART_BEAT ( 32): trace heartbeat code.
TRACE_APPLY ( 64): trace driver applies.
TRACE_OBJNAME (128): print the object names.
TRACE_EXEC and TRACE_HEART_BEAT should be avoided as they cause
massive output! TRACE_OBJNAME should be avoided when you know
what you trace.
The master-lfun valid_trace() is called with ("trace", traceflags)
as argument to verify the use of this efun.
EXAMPLES
object obj;
string prefix;
obj = find_player("wessex");
prefix = object_name(obj);
prefix = prefix[1..]; /* cut off the leading "/" */
traceprefix(prefix);
/* From here on, only code in the object "std/player#69"
* will be traced.
*/
trace(TRACE_CALL|TRACE_CALL_OTHER|TRACE_RETURN|TRACE_ARGS);
...
trace(TRACE_NOTHING);
HISTORY
LDMud 3.2.9 passes the <traceflags> argument to the valid_trace()
apply as well.
SEE ALSO
traceprefix(E)
|