MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 1 | GESCHUETZT |
| 2 | SYNOPSIS |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 3 | #include <trace.h> |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 4 | |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 5 | int trace(int traceflags) |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 6 | |
| 7 | BESCHREIBUNG |
| 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 | |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 38 | BEISPIELE |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 39 | object obj; |
| 40 | string prefix; |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 41 | obj = find_player("thomas"); |
| 42 | prefix = object_name(obj); /* z.B. /std/player#69 */ |
| 43 | prefix = prefix[1..]; /* entfernt den fuehrenden "/" */ |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 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 | |
Zesstra | d59c389 | 2019-11-28 20:53:39 +0100 | [diff] [blame] | 50 | GESCHICHTE |
| 51 | LDMud 3.2.9 uebergibt auch <traceflags> an valid_trace(). |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 52 | |
| 53 | SIEHE AUCH |
| 54 | traceprefix(E) |