blob: 330fcf18a4af152e9f135f4c33b7f70934094b77 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001GESCHUETZT
2SYNOPSIS
Zesstrad59c3892019-11-28 20:53:39 +01003 #include <trace.h>
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstrad59c3892019-11-28 20:53:39 +01005 int trace(int traceflags)
MG Mud User88f12472016-06-24 23:31:02 +02006
7BESCHREIBUNG
8 Setzt die Trace Flags und liefert die alten Trace Flags zurueck.
9 Wenn Tracing eingeschaltet ist, wird waehrend der Ausfuehrung eine
10 Menge Informationen ausgegeben. Zu viel Output kann die Verbindung
11 lahm legen oder sogar den ganzen Treiber zum Absturz bringen.
12
13 Tracing erfolgt auf einer Pro-Verbindung-Basis: jeder interaktive (!)
14 User kann sein eigenes Tracelevel und -praefix festlegen. Jeder
15 erhaelt nur den Traceoutput fuer den Code, der waehrend der
16 Auswertung eines vom User eingegeben Kommandos ausgefuehrt wird.
17
18 Die Trace-Bits (aus <trace.h>) sind:
19
20 TRACE_NOTHING ( 0): Beendet das Tracing
21 TRACE_CALL ( 1): Tracet alle Aufrufe von Lfuns
22 TRACE_CALL_OTHER ( 2): Tracet alle call_other() Aufrufe
23 TRACE_RETURN ( 4): Tracet Resultate von Funktionen
24 TRACE_ARGS ( 8): Gibt Argumente und Resultate von
25 Funktionen aus
26 TRACE_EXEC ( 16): Tracet alle ausgefuehrten Anweisungen
27 TRACE_HEART_BEAT ( 32): Tracet den Heartbeat Code
28 TRACE_APPLY ( 64): Tracet Treiber-Applies
29 TRACE_OBJNAME (128): Gibt den Namen des Objektes aus
30
31 TRACE_EXEC und TRACE_HEART_BEAT sollten nicht verwendet werden, weil
32 sie massiven Output verursachen. TRACE_OBJNAME sollte nicht verwendet
33 werden, wenn bekannt ist, welches Objekt getracet wird.
34
35 Die Master-Lfun valid_trace() wird mit ("trace", traceflags)
36 aufgerufen, um die Erlaubnis fuer die Nutzung von trace() zu erhalten.
37
Zesstrad59c3892019-11-28 20:53:39 +010038BEISPIELE
MG Mud User88f12472016-06-24 23:31:02 +020039 object obj;
40 string prefix;
Zesstrad59c3892019-11-28 20:53:39 +010041 obj = find_player("thomas");
42 prefix = object_name(obj); /* z.B. /std/player#69 */
43 prefix = prefix[1..]; /* entfernt den fuehrenden "/" */
MG Mud User88f12472016-06-24 23:31:02 +020044 traceprefix(prefix);
45 /* Von hier an wird nur Code im Objekt std/player#69 getracet */
46 trace(TRACE_CALL|TRACE_CALL_OTHER|TRACE_RETURN|TRACE_ARGS);
47 ...
48 trace(TRACE_NOTHING);
49
Zesstrad59c3892019-11-28 20:53:39 +010050GESCHICHTE
51 LDMud 3.2.9 uebergibt auch <traceflags> an valid_trace().
MG Mud User88f12472016-06-24 23:31:02 +020052
53SIEHE AUCH
54 traceprefix(E)