GESCHUETZT
SYNOPSIS
#include <trace.h>
int trace(int traceflags)
BESCHREIBUNG
Setzt die Trace Flags und liefert die alten Trace Flags zurueck.
Wenn Tracing eingeschaltet ist, wird waehrend der Ausfuehrung eine
Menge Informationen ausgegeben. Zu viel Output kann die Verbindung
lahm legen oder sogar den ganzen Treiber zum Absturz bringen.
Tracing erfolgt auf einer Pro-Verbindung-Basis: jeder interaktive (!)
User kann sein eigenes Tracelevel und -praefix festlegen. Jeder
erhaelt nur den Traceoutput fuer den Code, der waehrend der
Auswertung eines vom User eingegeben Kommandos ausgefuehrt wird.
Die Trace-Bits (aus <trace.h>) sind:
TRACE_NOTHING ( 0): Beendet das Tracing
TRACE_CALL ( 1): Tracet alle Aufrufe von Lfuns
TRACE_CALL_OTHER ( 2): Tracet alle call_other() Aufrufe
TRACE_RETURN ( 4): Tracet Resultate von Funktionen
TRACE_ARGS ( 8): Gibt Argumente und Resultate von
Funktionen aus
TRACE_EXEC ( 16): Tracet alle ausgefuehrten Anweisungen
TRACE_HEART_BEAT ( 32): Tracet den Heartbeat Code
TRACE_APPLY ( 64): Tracet Treiber-Applies
TRACE_OBJNAME (128): Gibt den Namen des Objektes aus
TRACE_EXEC und TRACE_HEART_BEAT sollten nicht verwendet werden, weil
sie massiven Output verursachen. TRACE_OBJNAME sollte nicht verwendet
werden, wenn bekannt ist, welches Objekt getracet wird.
Die Master-Lfun valid_trace() wird mit ("trace", traceflags)
aufgerufen, um die Erlaubnis fuer die Nutzung von trace() zu erhalten.
BEISPIELE
object obj;
string prefix;
obj = find_player("thomas");
prefix = object_name(obj); /* z.B. /std/player#69 */
prefix = prefix[1..]; /* entfernt den fuehrenden "/" */
traceprefix(prefix);
/* Von hier an wird nur Code im Objekt std/player#69 getracet */
trace(TRACE_CALL|TRACE_CALL_OTHER|TRACE_RETURN|TRACE_ARGS);
...
trace(TRACE_NOTHING);
GESCHICHTE
LDMud 3.2.9 uebergibt auch <traceflags> an valid_trace().
SIEHE AUCH
traceprefix(E)
|