blob: 36edc79585722379a1584dcefa91252f6b556fc4 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001GESCHUETZT
2SYNOPSIS
3 #include <sys/trace.h>
4
5 int trace(int traceflags);
6
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
38BEISPIEL
39 object obj;
40 string prefix;
41 obj=find_player("thomas");
42 prefix=objec_name(obj);
43 prefix=prefix[1..strlen(prefix)-1]; /* entfernt den Praefix "/" */
44 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
50AENDERUNGEN
51 LDMud 3.2.9 uebergibt auch <traceflags> an valid_trace()
52
53SIEHE AUCH
54 traceprefix(E)