MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | GESCHUETZT |
| 2 | SYNOPSIS |
| 3 | #include <sys/trace.h> |
| 4 | |
| 5 | int trace(int traceflags); |
| 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 | |
| 38 | BEISPIEL |
| 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 | |
| 50 | AENDERUNGEN |
| 51 | LDMud 3.2.9 uebergibt auch <traceflags> an valid_trace() |
| 52 | |
| 53 | SIEHE AUCH |
| 54 | traceprefix(E) |