Morgengrauner Dokumentation
Dateipfad: /home/mud/mudlib/doc//wiz/fehlerteufelDer Fehlerteufel
================
die Mudlib speichert die aufgetretenen Fehler und Warnungen. Dabei werden
folgende Daten mitgespeichert:
- Zeit (erstes Mal, zuletzt)
- In welchem Objekt und welchem Programm der Fehler war
- Zeilenr.
- Fehlermeldung
- Objekt, dessen Heartbeat, den Fehler ausloeste
- this_interactive() bzw. this_player()
- den Befehl, den TI eingegeben hat
- das Environment von TI oder TP
- wie oft der Fehler schon auftrat
- der Backtrace
- ob der Fehler in einem catch() auftrat
Zusaetzlich werden von Spielern per "bug", "fehler" oder "sonnenfehler"
gemeldete Fehler gespeichert.
Der Fehlerteufel dient nun dazu, sich diese Infos darstellen zu lassen. Nach
dem Clonen von /obj/tools/fehlerteufel habt ihr folgende Moeglichkeiten:
- fehlerliste
Dieser Befehl stellt euch eine Liste aller bekannten Fehler dar, die unter
einer UID auftraten, fuer die ihr zustaendig seid (z.B. "zesstra",
"d.inseln.zesstra", "GUILD.magierpack", s. auch QueryUIDsForWizard()). Die
Liste umfasst die eindeutige Fehler-ID, den Ladenamen des fehlerausloesenden
Objekts und die UID.
Je nach Argument werden div. Fehler oder Warnungen ausgegeben. Wird keins
von beiden angegeben, wird je nach Einstellung von 'fehlermodus' aufgelistet.
- fehlerabfrage
Hiermit lassen sich die Detail-Informationen zu anzeigen. bekommt
ihr entweder aus "fehlerliste" oder von -debug/-entwicklung/-warnungen, dort
werden diese IDs mit ausgegeben. Ohne Angabe der wird der letzte
betrachtete Fehler ausgegeben.
Neben der numerischen ID ist hierbei auch die Hash-ID moeglich.
Es kann auch der Ladename eines Objekts angegeben werden, dann werden alle
zu diesem Objekt gehoerenden Eintraege auf einmal angezeigt, z.B.
fehlerabfrage /d/unterwelt/raeume/wald3
Gebt ihr den vollstaendigen Pfad an, muss dieser mit einem / beginnen,
andernfalls wird in eurem P_CURRENTDIR gesucht, es funktioniert also auch:
cd /d/unterwelt/raeume
fehlerabfrage wald3
- fehlerloeschen [] []
Fehler mit der ID zum Loeschen markieren (z.B. wenn gefixt) und die
Bemerkung, sofern eine uebergeben wurde, wird angehaengt. Die eigentliche
Loeschung findet innerhalb von 24h statt. Die Fehler werden nach
diesem Befehl nicht mehr in der Fehlerliste angezeigt. Ohne Angabe der
wird der letzte benutzte Fehler geloescht.
Wiederholt man den Befehl, wird die Loeschmarkierung wieder entfernt.
Es kann auch der Ladename eines Objekts angegeben werden, dann werden alle
zu diesem Objekt gehoerenden Eintraege auf einmal geloescht, z.B.
fehlerloeschen /d/unterwelt/raeume/wald3
- fehlereingabe
Hiermit laesst sich per Hand ein Eintrag fuer das angegebene Objekt oder
die angegebene Datei im Fehlerteufel erstellen. Ein Objekt kann mit einer
seiner IDs oder seinem vollstaendigen Objektnamen angegeben werden. Falls
ein Dateiname eingegeben wird, muss die Datei existieren, damit daran ein
Fehler abgesetzt werden kann. Wird kein Objekt angegeben, wird die
Umgebung des Magiers als Objekt genutzt. Dies ist ebenso der Fall, wenn
das Objekt oder die Datei nicht existieren. Bsp:
fehlereingabe seil
fehlereingaeb /obj/seil#5635
- fehlerrefresh
Der Fehlerteufel hat einen Zwischenspeicher fuer die Fehlerliste. Dieser
Befehl loescht diesen Zwischenspeicher und holt die Fehlerliste neu.
- fehlerfilter
Hiermit laesst sich ein Filter fuer UIDs einstellen. (s.u.) Ist er aktiv,
werden per 'fehlerliste' keine Fehler mehr angezeigt, die im Filter
eingetragen wurden.
- fehlermodus
Einstellen, welche Arten von Eintraegen im Fehlerteufel vom Kommando
'fehlerliste' ausgegeben werden soll:
laufzeitfehler: Laufzeitfehler werden ausgegeben (-debug, -entwicklung)
laufzeitwarnungen: Laufzeitwarnungen werden ausgegeben (-warnungen)
ladezeitfehler: Fehler beim Laden eines Objekts werden ausgegeben
ladezeitwarnungen: Warnungen beim Laden eines Objekts werden ausgegeben
fehlerhinweise: Fehler, die Spieler/Magier abgesetzt haben
ideen: Ideen, die Spieler/Magier abgesetzt haben
typos: Typos, die Spieler/Magier abgesetzt haben
md: Fehlende Details, die Spieler/Magier abgesetzt haben
fehler: alle moeglichen Fehler werden ausgegeben
syntaxhinweise: Syntaxhinweise, die Spieler abgesetzt haben.
warnungen: alle moeglichen Warnungen werden ausgegeben
alle: alle Fehler + Warnungen werden ausgegeben
Ohne Argument: aktuellen Modus ausgeben.
- fehlermonitor
Hiermit lassen sich UIDs angeben, die man zusaetzlich zu den eigenen
auch noch beobachten will.
Hierbei sind auch einige UID-Aliase moeglich, z.B. 'magier', 'region',
'p.service', 'p' oder 'gilde'.
BTW: nach Aenderung dieser Liste sollte man "fehlerrefresh" aufrufen.
- flock
So markierte Fehler werden nicht mehr automatisch (nach 31 Tagen ohne
Aenderung) geloescht. ABER: Solcherart gesperrte Fehler werden momentan
_niemals_ automatisch geloescht, deshalb denkt bitte daran, sie entweder
selber zu loeschen oder sie wieder freizugeben, wenn ihr sie nicht mehr
braucht.
- funlock
Gibt den Fehler wieder zum automatischen Loeschen frei.
- ffix
Fehler wird als "gefixt" markiert und eine Mail an alle fuer das buggende
Objekte zustaendigen Magier geschickt (soweit bekannt). Anschliessend
werden die Fehler vom Fehlerteufel nicht mehr angezeigt.
Im Falle von durch Spieler berichteten Fehlern wird dem jeweiligen Spieler
beim Fixen ebenfalls eine Mail geschickt.
Als gefixt markierte Fehler werden nach einiger Zeit geloescht.
Es empfiehlt sich fuer eigene Fehler, diese nach Beheben einfach zu
Loeschen, wenn man keine Mail ueber den Fehler erhalten moechte.
- funfix
Wenn ihr bis zu der "Archivierung" gefixter Fehler feststellt, dass ihr den
Fehler wohl doch nicht gefixt habt, koennt ihr das wieder rueckgaengig
machen.
- fnotiz
Wenn euch an so einem Fehler was auffaellt oder ihr eine Idee habt, koennt ihr
das so also "verewigen". Notizen kann jeder Magier an Fehler dranhaengen,
dafuer braucht man keine besonderen (Schreib)Rechte. Die Notizen werden vom
Fehlerteufel ausgegeben und stehen auch im CHANGELOG.
Anmerkung: Es gibt (absichtlich) keine Moeglichkeit, Notizen wieder zu
loeschen.
- fdir
Setzt euer P_CURRENTDIR auf das Verzeichnis des fehlerhaften Objekts.
- fuebertrage
Wenn ihr einen Fehler habt, fuer den ihr nicht zustaendig seid, weil der
Ursprung des Fehlers nicht in einem eurer Files liegt, koennt ihr diesen
Fehler an eine andere UID mit einer Bemerkung uebertragen. Danach ist der
Magier von zustaendig und hat Schreibrechte auf den Fehler.
kann z.B. sowas wie 'd.inseln.zesstra' oder 'zesstra' sein. Liegt
der Fehler in einem Objekt in /d/, solltet ihr auf jeden Fall
d.region.magier benutzen, damit ggf. der RM der Region auch zustaendig wird.
- faendere
Wenn ein Fehler in der falschen Kategorie gemeldet wurde, kann man sie so
berichtigen, damit man ihn leichter wiederfindet. Es koennen nur von
Spielern gemeldete Fehler geaendert werden und auch nur zu Kategorien, die
von Spielern gemeldet werden koennen. Ihr koennt also keinen Typo zum
Laufzeitfehler erklaeren oder umgekehrt.
UID-Filter:
a) fehlerfilter an
Schaltet den Filter ein
b) fehlerfilter aus
schaltet den Filter aus
c) fehlerfilter alle
schaltet den Filter ein _und_ schreibt alle UIDs, fuer die man zustaendig
ist, in den Filter, es wird dann nichts mehr angezeigt.
d) fehlerfilter keine
schaltet den Filter ein _und_ loescht den Filter, d.h. es wird trotzdem
erstmal noch nix gefiltert..
e) fehlerfilter +zesstra +d.inseln.zesstra -d.ebene.zesstra
Fuegt "zesstra" und "d.inseln.zesstra" den aktuellen Filtereinstellungen
hinzu und loescht "d.ebene.zesstra" aus dem Filter.
Beliebige Kombinationen moeglich. Ohne - oder + am Anfang wird jeweils
invertiert, also hinzugefuegt, wenn noch nicht drin und entfernt, wenn
schon in der Liste.
Fehler-Monitor:
a) fehlermonitor keine
Loescht alle beobachteten UIDs
b) fehlermonitor +atamur -d.polar.atamur
Fuegt "atamur" der Beobachtungsliste hinzu und entfernt "d.polar.atamur".
Beliebige Kombinationen moeglich. Ohne - oder + am Anfang wird jeweils
invertiert, also hinzugefuegt, wenn noch nicht drin und entfernt, wenn
schon in der Liste.
Zugriffsrechte:
- Lesen und Anhaengen (Notizen, Loeschsperren) darf jeder Magier
- Loeschen, Fixen und UID neu zuordnen duerfen fuer die UID zustaendige Magier
- Fixes zurueckziehen darf jeder Magier (solange issue nicht expired)
- EM+ duerfen alles
Randbemerkung:
Moechte man nicht, dass vom Magier selbst ausgeloeste Fehler in /players/
protokolliert werden, kann der Magier _in sich_ die Prop P_DONT_LOG_ERRORS
(aus /secure/errord.h) auf 1 setzen.
ACHTUNG: das bedeutet, dass ueber Fehler keine Informationen mehr
vorliegen, die beim Fixen helfen koennen. Bedenkt das bitte, wenn ihr die
Prop setzt.
SIEHE AUCH:
QueryUIDsForWizard(), QueryWizardForUID()
Letzte Aenderung: 22.09.2022, Bugfix
zurück zur Übersicht