Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc//wiz/fehlerteufel

Der 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

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.