GESCHUETZT SYNOPSIS #include 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 ) 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 an valid_trace(). SIEHE AUCH traceprefix(E)