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