blob: 37d4ecfc0fd61d2a841b4547aeb24b1a56ddc91b [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
86 warnungen: alle moeglichen Warnungen werden ausgegeben
87 alle: alle Fehler + Warnungen werden ausgegeben
88
89 Ohne Argument: aktuellen Modus ausgeben.
90
91- fehlermonitor
92 Hiermit lassen sich UIDs angeben, die man zusaetzlich zu den eigenen
93 auch noch beobachten will.
94 Hierbei sind auch einige UID-Aliase moeglich, z.B. 'magier', 'region',
95 'p.service', 'p' oder 'gilde'.
96 BTW: nach Aenderung dieser Liste sollte man "fehlerrefresh" aufrufen.
97
98- flock <id> <bemerkung>
99 So markierte Fehler werden nicht mehr automatisch (nach 31 Tagen ohne
100 Aenderung) geloescht. ABER: Solcherart gesperrte Fehler werden momentan
101 _niemals_ automatisch geloescht, deshalb denkt bitte daran, sie entweder
102 selber zu loeschen oder sie wieder freizugeben, wenn ihr sie nicht mehr
103 braucht.
104
105- funlock <id> <bemerkung>
106 Gibt den Fehler wieder zum automatischen Loeschen frei.
107
108- ffix <id> <bemerkung zum fix>
109 Fehler wird als "gefixt" markiert und eine Mail an alle fuer das buggende
110 Objekte zustaendigen Magier geschickt (soweit bekannt). Anschliessend
111 werden die Fehler vom Fehlerteufel nicht mehr angezeigt.
112 Im Falle von durch Spieler berichteten Fehlern wird dem jeweiligen Spieler
113 beim Fixen ebenfalls eine Mail geschickt.
114 Als gefixt markierte Fehler werden nach einiger Zeit geloescht.
115 Es empfiehlt sich fuer eigene Fehler, diese nach Beheben einfach zu
116 Loeschen, wenn man keine Mail ueber den Fehler erhalten moechte.
117
118- funfix <id> <bemerkung warum der Bugfix scheisse war ;)>
119 Wenn ihr bis zu der "Archivierung" gefixter Fehler feststellt, dass ihr den
120 Fehler wohl doch nicht gefixt habt, koennt ihr das wieder rueckgaengig
121 machen.
122
123- fnotiz <id> <bemerkung>
124 Wenn euch an so einem Fehler was auffaellt oder ihr eine Idee habt, koennt ihr
125 das so also "verewigen". Notizen kann jeder Magier an Fehler dranhaengen,
126 dafuer braucht man keine besonderen (Schreib)Rechte. Die Notizen werden vom
127 Fehlerteufel ausgegeben und stehen auch im CHANGELOG.
128 Anmerkung: Es gibt (absichtlich) keine Moeglichkeit, Notizen wieder zu
129 loeschen.
130
131- fuebertrage <id> <newuid> <bemerkung>
132 Wenn ihr einen Fehler habt, fuer den ihr nicht zustaendig seid, weil der
133 Ursprung des Fehlers nicht in einem eurer Files liegt, koennt ihr diesen
134 Fehler an eine andere UID mit einer Bemerkung uebertragen. Danach ist der
135 Magier von <newuid> zustaendig und hat Schreibrechte auf den Fehler.
136 <newuid> kann z.B. sowas wie 'd.inseln.zesstra' oder 'zesstra' sein. Liegt
137 der Fehler in einem Objekt in /d/, solltet ihr auf jeden Fall
138 d.region.magier benutzen, damit ggf. der RM der Region auch zustaendig wird.
139
140UID-Filter:
141 a) fehlerfilter an
142 Schaltet den Filter ein
143 b) fehlerfilter aus
144 schaltet den Filter aus
145 c) fehlerfilter alle
146 schaltet den Filter ein _und_ schreibt alle UIDs, fuer die man zustaendig
147 ist, in den Filter, es wird dann nichts mehr angezeigt.
148 d) fehlerfilter keine
149 schaltet den Filter ein _und_ loescht den Filter, d.h. es wird trotzdem
150 erstmal noch nix gefiltert..
151 e) fehlerfilter +zesstra +d.inseln.zesstra -d.ebene.zesstra
152 Fuegt "zesstra" und "d.inseln.zesstra" den aktuellen Filtereinstellungen
153 hinzu und loescht "d.ebene.zesstra" aus dem Filter.
154 Beliebige Kombinationen moeglich. Ohne - oder + am Anfang wird jeweils
155 invertiert, also hinzugefuegt, wenn noch nicht drin und entfernt, wenn
156 schon in der Liste.
157
158Fehler-Monitor:
159 a) fehlermonitor keine
160 Loescht alle beobachteten UIDs
161 b) fehlermonitor +atamur -d.polar.atamur
162 Fuegt "atamur" der Beobachtungsliste hinzu und entfernt "d.polar.atamur".
163 Beliebige Kombinationen moeglich. Ohne - oder + am Anfang wird jeweils
164 invertiert, also hinzugefuegt, wenn noch nicht drin und entfernt, wenn
165 schon in der Liste.
166
167Zugriffsrechte:
168 - Lesen und Anhaengen (Notizen, Loeschsperren) darf jeder Magier
169 - Loeschen, Fixen und UID neu zuordnen duerfen fuer die UID zustaendige Magier
170 - Fixes zurueckziehen darf jeder Magier (solange issue nicht expired)
171 - EM+ duerfen alles
172
173Randbemerkung:
174 Moechte man nicht, dass vom Magier selbst ausgeloeste Fehler in /players/
175 protokolliert werden, kann der Magier _in sich_ die Prop P_DONT_LOG_ERRORS
176 (aus /secure/errord.h) auf 1 setzen.
177 ACHTUNG: das bedeutet, dass ueber Fehler keine Informationen mehr
178 vorliegen, die beim Fixen helfen koennen. Bedenkt das bitte, wenn ihr die
179 Prop setzt.
180
181
182SIEHE AUCH:
183 QueryUIDsForWizard(), QueryWizardForUID()
184