blob: e9dca607911b968ca720206074354b89e2dc6a06 [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
Bugfix994aef02019-05-28 19:58:21 +0200132- fdir <id>
133 Setzt euer P_CURRENTDIR auf das Verzeichnis des fehlerhaften Objekts.
134
MG Mud User88f12472016-06-24 23:31:02 +0200135- fuebertrage <id> <newuid> <bemerkung>
136 Wenn ihr einen Fehler habt, fuer den ihr nicht zustaendig seid, weil der
137 Ursprung des Fehlers nicht in einem eurer Files liegt, koennt ihr diesen
138 Fehler an eine andere UID mit einer Bemerkung uebertragen. Danach ist der
139 Magier von <newuid> zustaendig und hat Schreibrechte auf den Fehler.
140 <newuid> kann z.B. sowas wie 'd.inseln.zesstra' oder 'zesstra' sein. Liegt
141 der Fehler in einem Objekt in /d/, solltet ihr auf jeden Fall
142 d.region.magier benutzen, damit ggf. der RM der Region auch zustaendig wird.
143
144UID-Filter:
145 a) fehlerfilter an
146 Schaltet den Filter ein
147 b) fehlerfilter aus
148 schaltet den Filter aus
149 c) fehlerfilter alle
150 schaltet den Filter ein _und_ schreibt alle UIDs, fuer die man zustaendig
151 ist, in den Filter, es wird dann nichts mehr angezeigt.
152 d) fehlerfilter keine
153 schaltet den Filter ein _und_ loescht den Filter, d.h. es wird trotzdem
154 erstmal noch nix gefiltert..
155 e) fehlerfilter +zesstra +d.inseln.zesstra -d.ebene.zesstra
156 Fuegt "zesstra" und "d.inseln.zesstra" den aktuellen Filtereinstellungen
157 hinzu und loescht "d.ebene.zesstra" aus dem Filter.
158 Beliebige Kombinationen moeglich. Ohne - oder + am Anfang wird jeweils
159 invertiert, also hinzugefuegt, wenn noch nicht drin und entfernt, wenn
160 schon in der Liste.
161
162Fehler-Monitor:
163 a) fehlermonitor keine
164 Loescht alle beobachteten UIDs
165 b) fehlermonitor +atamur -d.polar.atamur
166 Fuegt "atamur" der Beobachtungsliste hinzu und entfernt "d.polar.atamur".
167 Beliebige Kombinationen moeglich. Ohne - oder + am Anfang wird jeweils
168 invertiert, also hinzugefuegt, wenn noch nicht drin und entfernt, wenn
169 schon in der Liste.
170
171Zugriffsrechte:
172 - Lesen und Anhaengen (Notizen, Loeschsperren) darf jeder Magier
173 - Loeschen, Fixen und UID neu zuordnen duerfen fuer die UID zustaendige Magier
174 - Fixes zurueckziehen darf jeder Magier (solange issue nicht expired)
175 - EM+ duerfen alles
176
177Randbemerkung:
178 Moechte man nicht, dass vom Magier selbst ausgeloeste Fehler in /players/
179 protokolliert werden, kann der Magier _in sich_ die Prop P_DONT_LOG_ERRORS
180 (aus /secure/errord.h) auf 1 setzen.
181 ACHTUNG: das bedeutet, dass ueber Fehler keine Informationen mehr
182 vorliegen, die beim Fixen helfen koennen. Bedenkt das bitte, wenn ihr die
183 Prop setzt.
184
185
186SIEHE AUCH:
187 QueryUIDsForWizard(), QueryWizardForUID()
188