blob: 1e2968b9120a281425a79a0b921114a147af321a [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001Der Fehlerteufel
2================
3
4die Mudlib speichert die aufgetretenen Fehler und Warnungen. Dabei werden
5folgende Daten mitgespeichert:
6- Zeit (erstes Mal, zuletzt)
7- In welchem Objekt und welchem Programm der Fehler war
8- Zeilenr.
9- Fehlermeldung
10- Objekt, dessen Heartbeat, den Fehler ausloeste
11- this_interactive() bzw. this_player()
12- den Befehl, den TI eingegeben hat
13- das Environment von TI oder TP
14- wie oft der Fehler schon auftrat
15- der Backtrace
16- ob der Fehler in einem catch() auftrat
17
18Zusaetzlich werden von Spielern per "bug", "fehler" oder "sonnenfehler"
19gemeldete Fehler gespeichert.
20
21Der Fehlerteufel dient nun dazu, sich diese Infos darstellen zu lassen. Nach
22dem Clonen von /obj/tools/fehlerteufel habt ihr folgende Moeglichkeiten:
23
24- fehlerliste <auswahl s. Kommando fehlermodus>
25 Dieser Befehl stellt euch eine Liste aller bekannten Fehler dar, die unter
26 einer UID auftraten, fuer die ihr zustaendig seid (z.B. "zesstra",
27 "d.inseln.zesstra", "GUILD.magierpack", s. auch QueryUIDsForWizard()). Die
28 Liste umfasst die eindeutige Fehler-ID, den Ladenamen des fehlerausloesenden
29 Objekts und die UID.
30 Je nach Argument werden div. Fehler oder Warnungen ausgegeben. Wird keins
31 von beiden angegeben, wird je nach Einstellung von 'fehlermodus' aufgelistet.
32
33- fehlerabfrage <id>
34 Hiermit lassen sich die Detail-Informationen zu <id> anzeigen. <id> bekommt
35 ihr entweder aus "fehlerliste" oder von -debug/-entwicklung/-warnungen, dort
36 werden diese IDs mit ausgegeben. Ohne Angabe der <id> wird der letzte
37 betrachtete Fehler ausgegeben.
38 Neben der numerischen ID ist hierbei auch die Hash-ID moeglich.
39 Es kann auch der Ladename eines Objekts angegeben werden, dann werden alle
40 zu diesem Objekt gehoerenden Eintraege auf einmal angezeigt, z.B.
41 fehlerabfrage /d/unterwelt/raeume/wald3
42 Der Ladename muss mit einem / beginnen.
43
44- fehlerloeschen <id>
45 Fehler mit der ID <id> zum Loeschen markieren (z.B. wenn gefixt). Die
46 eigentlich Loeschung findet innerhalb von 24h statt. Die Fehler werden nach
47 diesem Befehl nicht mehr in der Fehlerliste angezeigt. Ohne Angabe der <id>
48 wird der letzte benutzte Fehler geloescht.
49 Wiederholt man den Befehl, wird die Loeschmarkierung wieder entfernt.
50 Es kann auch der Ladename eines Objekts angegeben werden, dann werden alle
51 zu diesem Objekt gehoerenden Eintraege auf einmal geloescht, z.B.
52 fehlerloeschen d/unterwelt/raeume/wald3
53
Arathorn2e77c0a2016-08-27 14:37:47 +020054- fehlereingabe <objekt|dateiname>
55 Hiermit laesst sich per Hand ein Eintrag fuer das angegebene Objekt oder
56 die angegebene Datei im Fehlerteufel erstellen. Ein Objekt kann mit einer
57 seiner IDs oder seinem vollstaendigen Objektnamen angegeben werden. Falls
58 ein Dateiname eingegeben wird, muss die Datei existieren, damit daran ein
59 Fehler abgesetzt werden kann. Wird kein Objekt angegeben, wird die
60 Umgebung des Magiers als Objekt genutzt. Dies ist ebenso der Fall, wenn
61 das Objekt oder die Datei nicht existieren. Bsp:
MG Mud User88f12472016-06-24 23:31:02 +020062 fehlereingabe seil
63 fehlereingaeb /obj/seil#5635
64
65- fehlerrefresh
66 Der Fehlerteufel hat einen Zwischenspeicher fuer die Fehlerliste. Dieser
67 Befehl loescht diesen Zwischenspeicher und holt die Fehlerliste neu.
68
69- fehlerfilter
70 Hiermit laesst sich ein Filter fuer UIDs einstellen. (s.u.) Ist er aktiv,
71 werden per 'fehlerliste' keine Fehler mehr angezeigt, die im Filter
72 eingetragen wurden.
73
74- fehlermodus <fehler|warnungen>
75 Einstellen, welche Arten von Eintraegen im Fehlerteufel vom Kommando
76 'fehlerliste' ausgegeben werden soll:
77 laufzeitfehler: Laufzeitfehler werden ausgegeben (-debug, -entwicklung)
78 laufzeitwarnungen: Laufzeitwarnungen werden ausgegeben (-warnungen)
79 ladezeitfehler: Fehler beim Laden eines Objekts werden ausgegeben
80 ladezeitwarnungen: Warnungen beim Laden eines Objekts werden ausgegeben
81 fehlerhinweise: Fehler, die Spieler/Magier abgesetzt haben
82 ideen: Ideen, die Spieler/Magier abgesetzt haben
83 typos: Typos, die Spieler/Magier abgesetzt haben
84 md: Fehlende Details, die Spieler/Magier abgesetzt haben
85 fehler: alle moeglichen Fehler werden ausgegeben
heull001aaf650c2017-06-17 18:24:44 +020086 syntaxhinweise: Syntaxhinweise, die Spieler abgesetzt haben.
MG Mud User88f12472016-06-24 23:31:02 +020087 warnungen: alle moeglichen Warnungen werden ausgegeben
88 alle: alle Fehler + Warnungen werden ausgegeben
89
90 Ohne Argument: aktuellen Modus ausgeben.
91
92- fehlermonitor
93 Hiermit lassen sich UIDs angeben, die man zusaetzlich zu den eigenen
94 auch noch beobachten will.
95 Hierbei sind auch einige UID-Aliase moeglich, z.B. 'magier', 'region',
96 'p.service', 'p' oder 'gilde'.
97 BTW: nach Aenderung dieser Liste sollte man "fehlerrefresh" aufrufen.
98
99- flock <id> <bemerkung>
100 So markierte Fehler werden nicht mehr automatisch (nach 31 Tagen ohne
101 Aenderung) geloescht. ABER: Solcherart gesperrte Fehler werden momentan
102 _niemals_ automatisch geloescht, deshalb denkt bitte daran, sie entweder
103 selber zu loeschen oder sie wieder freizugeben, wenn ihr sie nicht mehr
104 braucht.
105
106- funlock <id> <bemerkung>
107 Gibt den Fehler wieder zum automatischen Loeschen frei.
108
109- ffix <id> <bemerkung zum fix>
110 Fehler wird als "gefixt" markiert und eine Mail an alle fuer das buggende
111 Objekte zustaendigen Magier geschickt (soweit bekannt). Anschliessend
112 werden die Fehler vom Fehlerteufel nicht mehr angezeigt.
113 Im Falle von durch Spieler berichteten Fehlern wird dem jeweiligen Spieler
114 beim Fixen ebenfalls eine Mail geschickt.
115 Als gefixt markierte Fehler werden nach einiger Zeit geloescht.
116 Es empfiehlt sich fuer eigene Fehler, diese nach Beheben einfach zu
117 Loeschen, wenn man keine Mail ueber den Fehler erhalten moechte.
118
119- funfix <id> <bemerkung warum der Bugfix scheisse war ;)>
120 Wenn ihr bis zu der "Archivierung" gefixter Fehler feststellt, dass ihr den
121 Fehler wohl doch nicht gefixt habt, koennt ihr das wieder rueckgaengig
122 machen.
123
124- fnotiz <id> <bemerkung>
125 Wenn euch an so einem Fehler was auffaellt oder ihr eine Idee habt, koennt ihr
126 das so also "verewigen". Notizen kann jeder Magier an Fehler dranhaengen,
127 dafuer braucht man keine besonderen (Schreib)Rechte. Die Notizen werden vom
128 Fehlerteufel ausgegeben und stehen auch im CHANGELOG.
129 Anmerkung: Es gibt (absichtlich) keine Moeglichkeit, Notizen wieder zu
130 loeschen.
131
132- fuebertrage <id> <newuid> <bemerkung>
133 Wenn ihr einen Fehler habt, fuer den ihr nicht zustaendig seid, weil der
134 Ursprung des Fehlers nicht in einem eurer Files liegt, koennt ihr diesen
135 Fehler an eine andere UID mit einer Bemerkung uebertragen. Danach ist der
136 Magier von <newuid> zustaendig und hat Schreibrechte auf den Fehler.
137 <newuid> kann z.B. sowas wie 'd.inseln.zesstra' oder 'zesstra' sein. Liegt
138 der Fehler in einem Objekt in /d/, solltet ihr auf jeden Fall
139 d.region.magier benutzen, damit ggf. der RM der Region auch zustaendig wird.
140
141UID-Filter:
142 a) fehlerfilter an
143 Schaltet den Filter ein
144 b) fehlerfilter aus
145 schaltet den Filter aus
146 c) fehlerfilter alle
147 schaltet den Filter ein _und_ schreibt alle UIDs, fuer die man zustaendig
148 ist, in den Filter, es wird dann nichts mehr angezeigt.
149 d) fehlerfilter keine
150 schaltet den Filter ein _und_ loescht den Filter, d.h. es wird trotzdem
151 erstmal noch nix gefiltert..
152 e) fehlerfilter +zesstra +d.inseln.zesstra -d.ebene.zesstra
153 Fuegt "zesstra" und "d.inseln.zesstra" den aktuellen Filtereinstellungen
154 hinzu und loescht "d.ebene.zesstra" aus dem Filter.
155 Beliebige Kombinationen moeglich. Ohne - oder + am Anfang wird jeweils
156 invertiert, also hinzugefuegt, wenn noch nicht drin und entfernt, wenn
157 schon in der Liste.
158
159Fehler-Monitor:
160 a) fehlermonitor keine
161 Loescht alle beobachteten UIDs
162 b) fehlermonitor +atamur -d.polar.atamur
163 Fuegt "atamur" der Beobachtungsliste hinzu und entfernt "d.polar.atamur".
164 Beliebige Kombinationen moeglich. Ohne - oder + am Anfang wird jeweils
165 invertiert, also hinzugefuegt, wenn noch nicht drin und entfernt, wenn
166 schon in der Liste.
167
168Zugriffsrechte:
169 - Lesen und Anhaengen (Notizen, Loeschsperren) darf jeder Magier
170 - Loeschen, Fixen und UID neu zuordnen duerfen fuer die UID zustaendige Magier
171 - Fixes zurueckziehen darf jeder Magier (solange issue nicht expired)
172 - EM+ duerfen alles
173
174Randbemerkung:
175 Moechte man nicht, dass vom Magier selbst ausgeloeste Fehler in /players/
176 protokolliert werden, kann der Magier _in sich_ die Prop P_DONT_LOG_ERRORS
177 (aus /secure/errord.h) auf 1 setzen.
178 ACHTUNG: das bedeutet, dass ueber Fehler keine Informationen mehr
179 vorliegen, die beim Fixen helfen koennen. Bedenkt das bitte, wenn ihr die
180 Prop setzt.
181
182
183SIEHE AUCH:
184 QueryUIDsForWizard(), QueryWizardForUID()
185