blob: 711d16137730676258cacd7e8b23deb36ba4ad33 [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
Bugfixe1949592019-09-16 20:41:54 +020042 Gebt ihr den vollstaendigen Pfad an, muss dieser mit einem / beginnen,
43 andernfalls wird in eurem P_CURRENTDIR gesucht, es funktioniert also auch:
44 cd /d/unterwelt/raeume
45 fehlerabfrage wald3
MG Mud User88f12472016-06-24 23:31:02 +020046
Bugfix85764d72021-08-24 10:15:59 +020047- fehlerloeschen [<id>] [<bemerkung>]
48 Fehler mit der ID <id> zum Loeschen markieren (z.B. wenn gefixt) und die
49 Bemerkung, sofern eine uebergeben wurde, wird angehaengt. Die eigentliche
50 Loeschung findet innerhalb von 24h statt. Die Fehler werden nach
MG Mud User88f12472016-06-24 23:31:02 +020051 diesem Befehl nicht mehr in der Fehlerliste angezeigt. Ohne Angabe der <id>
52 wird der letzte benutzte Fehler geloescht.
53 Wiederholt man den Befehl, wird die Loeschmarkierung wieder entfernt.
54 Es kann auch der Ladename eines Objekts angegeben werden, dann werden alle
55 zu diesem Objekt gehoerenden Eintraege auf einmal geloescht, z.B.
Bugfix85764d72021-08-24 10:15:59 +020056 fehlerloeschen /d/unterwelt/raeume/wald3
MG Mud User88f12472016-06-24 23:31:02 +020057
Arathorn2e77c0a2016-08-27 14:37:47 +020058- fehlereingabe <objekt|dateiname>
59 Hiermit laesst sich per Hand ein Eintrag fuer das angegebene Objekt oder
60 die angegebene Datei im Fehlerteufel erstellen. Ein Objekt kann mit einer
61 seiner IDs oder seinem vollstaendigen Objektnamen angegeben werden. Falls
62 ein Dateiname eingegeben wird, muss die Datei existieren, damit daran ein
63 Fehler abgesetzt werden kann. Wird kein Objekt angegeben, wird die
64 Umgebung des Magiers als Objekt genutzt. Dies ist ebenso der Fall, wenn
65 das Objekt oder die Datei nicht existieren. Bsp:
MG Mud User88f12472016-06-24 23:31:02 +020066 fehlereingabe seil
67 fehlereingaeb /obj/seil#5635
68
69- fehlerrefresh
70 Der Fehlerteufel hat einen Zwischenspeicher fuer die Fehlerliste. Dieser
71 Befehl loescht diesen Zwischenspeicher und holt die Fehlerliste neu.
72
73- fehlerfilter
74 Hiermit laesst sich ein Filter fuer UIDs einstellen. (s.u.) Ist er aktiv,
75 werden per 'fehlerliste' keine Fehler mehr angezeigt, die im Filter
76 eingetragen wurden.
77
78- fehlermodus <fehler|warnungen>
79 Einstellen, welche Arten von Eintraegen im Fehlerteufel vom Kommando
80 'fehlerliste' ausgegeben werden soll:
81 laufzeitfehler: Laufzeitfehler werden ausgegeben (-debug, -entwicklung)
82 laufzeitwarnungen: Laufzeitwarnungen werden ausgegeben (-warnungen)
83 ladezeitfehler: Fehler beim Laden eines Objekts werden ausgegeben
84 ladezeitwarnungen: Warnungen beim Laden eines Objekts werden ausgegeben
85 fehlerhinweise: Fehler, die Spieler/Magier abgesetzt haben
86 ideen: Ideen, die Spieler/Magier abgesetzt haben
87 typos: Typos, die Spieler/Magier abgesetzt haben
88 md: Fehlende Details, die Spieler/Magier abgesetzt haben
89 fehler: alle moeglichen Fehler werden ausgegeben
heull001aaf650c2017-06-17 18:24:44 +020090 syntaxhinweise: Syntaxhinweise, die Spieler abgesetzt haben.
MG Mud User88f12472016-06-24 23:31:02 +020091 warnungen: alle moeglichen Warnungen werden ausgegeben
92 alle: alle Fehler + Warnungen werden ausgegeben
93
94 Ohne Argument: aktuellen Modus ausgeben.
95
96- fehlermonitor
97 Hiermit lassen sich UIDs angeben, die man zusaetzlich zu den eigenen
98 auch noch beobachten will.
99 Hierbei sind auch einige UID-Aliase moeglich, z.B. 'magier', 'region',
100 'p.service', 'p' oder 'gilde'.
101 BTW: nach Aenderung dieser Liste sollte man "fehlerrefresh" aufrufen.
102
103- flock <id> <bemerkung>
104 So markierte Fehler werden nicht mehr automatisch (nach 31 Tagen ohne
105 Aenderung) geloescht. ABER: Solcherart gesperrte Fehler werden momentan
106 _niemals_ automatisch geloescht, deshalb denkt bitte daran, sie entweder
107 selber zu loeschen oder sie wieder freizugeben, wenn ihr sie nicht mehr
108 braucht.
109
110- funlock <id> <bemerkung>
111 Gibt den Fehler wieder zum automatischen Loeschen frei.
112
113- ffix <id> <bemerkung zum fix>
114 Fehler wird als "gefixt" markiert und eine Mail an alle fuer das buggende
115 Objekte zustaendigen Magier geschickt (soweit bekannt). Anschliessend
116 werden die Fehler vom Fehlerteufel nicht mehr angezeigt.
117 Im Falle von durch Spieler berichteten Fehlern wird dem jeweiligen Spieler
118 beim Fixen ebenfalls eine Mail geschickt.
119 Als gefixt markierte Fehler werden nach einiger Zeit geloescht.
120 Es empfiehlt sich fuer eigene Fehler, diese nach Beheben einfach zu
121 Loeschen, wenn man keine Mail ueber den Fehler erhalten moechte.
122
123- funfix <id> <bemerkung warum der Bugfix scheisse war ;)>
124 Wenn ihr bis zu der "Archivierung" gefixter Fehler feststellt, dass ihr den
125 Fehler wohl doch nicht gefixt habt, koennt ihr das wieder rueckgaengig
126 machen.
127
128- fnotiz <id> <bemerkung>
129 Wenn euch an so einem Fehler was auffaellt oder ihr eine Idee habt, koennt ihr
130 das so also "verewigen". Notizen kann jeder Magier an Fehler dranhaengen,
131 dafuer braucht man keine besonderen (Schreib)Rechte. Die Notizen werden vom
132 Fehlerteufel ausgegeben und stehen auch im CHANGELOG.
133 Anmerkung: Es gibt (absichtlich) keine Moeglichkeit, Notizen wieder zu
134 loeschen.
135
Bugfix994aef02019-05-28 19:58:21 +0200136- fdir <id>
137 Setzt euer P_CURRENTDIR auf das Verzeichnis des fehlerhaften Objekts.
138
MG Mud User88f12472016-06-24 23:31:02 +0200139- fuebertrage <id> <newuid> <bemerkung>
140 Wenn ihr einen Fehler habt, fuer den ihr nicht zustaendig seid, weil der
141 Ursprung des Fehlers nicht in einem eurer Files liegt, koennt ihr diesen
142 Fehler an eine andere UID mit einer Bemerkung uebertragen. Danach ist der
143 Magier von <newuid> zustaendig und hat Schreibrechte auf den Fehler.
144 <newuid> kann z.B. sowas wie 'd.inseln.zesstra' oder 'zesstra' sein. Liegt
145 der Fehler in einem Objekt in /d/, solltet ihr auf jeden Fall
146 d.region.magier benutzen, damit ggf. der RM der Region auch zustaendig wird.
147
Bugfix67091cb2022-09-22 15:57:31 +0200148- faendere <id> <newtype> <bemerkung>
149 Wenn ein Fehler in der falschen Kategorie gemeldet wurde, kann man sie so
150 berichtigen, damit man ihn leichter wiederfindet. Es koennen nur von
151 Spielern gemeldete Fehler geaendert werden und auch nur zu Kategorien, die
152 von Spielern gemeldet werden koennen. Ihr koennt also keinen Typo zum
153 Laufzeitfehler erklaeren oder umgekehrt.
154
MG Mud User88f12472016-06-24 23:31:02 +0200155UID-Filter:
156 a) fehlerfilter an
157 Schaltet den Filter ein
158 b) fehlerfilter aus
159 schaltet den Filter aus
160 c) fehlerfilter alle
161 schaltet den Filter ein _und_ schreibt alle UIDs, fuer die man zustaendig
162 ist, in den Filter, es wird dann nichts mehr angezeigt.
163 d) fehlerfilter keine
164 schaltet den Filter ein _und_ loescht den Filter, d.h. es wird trotzdem
165 erstmal noch nix gefiltert..
166 e) fehlerfilter +zesstra +d.inseln.zesstra -d.ebene.zesstra
167 Fuegt "zesstra" und "d.inseln.zesstra" den aktuellen Filtereinstellungen
168 hinzu und loescht "d.ebene.zesstra" aus dem Filter.
169 Beliebige Kombinationen moeglich. Ohne - oder + am Anfang wird jeweils
170 invertiert, also hinzugefuegt, wenn noch nicht drin und entfernt, wenn
171 schon in der Liste.
172
173Fehler-Monitor:
174 a) fehlermonitor keine
175 Loescht alle beobachteten UIDs
176 b) fehlermonitor +atamur -d.polar.atamur
177 Fuegt "atamur" der Beobachtungsliste hinzu und entfernt "d.polar.atamur".
178 Beliebige Kombinationen moeglich. Ohne - oder + am Anfang wird jeweils
179 invertiert, also hinzugefuegt, wenn noch nicht drin und entfernt, wenn
180 schon in der Liste.
181
182Zugriffsrechte:
183 - Lesen und Anhaengen (Notizen, Loeschsperren) darf jeder Magier
184 - Loeschen, Fixen und UID neu zuordnen duerfen fuer die UID zustaendige Magier
185 - Fixes zurueckziehen darf jeder Magier (solange issue nicht expired)
186 - EM+ duerfen alles
187
188Randbemerkung:
189 Moechte man nicht, dass vom Magier selbst ausgeloeste Fehler in /players/
190 protokolliert werden, kann der Magier _in sich_ die Prop P_DONT_LOG_ERRORS
191 (aus /secure/errord.h) auf 1 setzen.
192 ACHTUNG: das bedeutet, dass ueber Fehler keine Informationen mehr
193 vorliegen, die beim Fixen helfen koennen. Bedenkt das bitte, wenn ihr die
194 Prop setzt.
195
196
197SIEHE AUCH:
198 QueryUIDsForWizard(), QueryWizardForUID()
199
Bugfix67091cb2022-09-22 15:57:31 +0200200Letzte Aenderung: 22.09.2022, Bugfix