MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | Der Fehlerteufel |
| 2 | ================ |
| 3 | |
| 4 | die Mudlib speichert die aufgetretenen Fehler und Warnungen. Dabei werden |
| 5 | folgende 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 | |
| 18 | Zusaetzlich werden von Spielern per "bug", "fehler" oder "sonnenfehler" |
| 19 | gemeldete Fehler gespeichert. |
| 20 | |
| 21 | Der Fehlerteufel dient nun dazu, sich diese Infos darstellen zu lassen. Nach |
| 22 | dem 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 | |
| 137 | UID-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 | |
| 155 | Fehler-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 | |
| 164 | Zugriffsrechte: |
| 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 | |
| 170 | Randbemerkung: |
| 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 | |
| 179 | SIEHE AUCH: |
| 180 | QueryUIDsForWizard(), QueryWizardForUID() |
| 181 | |