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