Schlagwort-Archive: Debugger

Wie man (vielleicht) der Bombe entkommt

Benutzer des klassischen MacOS kennen sie sicherlich, die vielgehasste Bombe, die erscheint, wenn ein Programm abgestürzt ist:


(Quelle: Wikipedia)

Der Dialog weckt den Anschein, dass ein Neustart die einzige Lösung zu diesem Problem ist, doch es gibt einen Trick, wie man vielleicht nicht alle Arbeit verliert. Unter System 6 und früher ist das nur hilfreich, wenn man den MultiFinder verwendet, um mehrere Programme gleichzeitig auszuführen, ab System 7 ist der MultiFinder Standard. Denn das Programm, das den Fehler erzeugt hat, wird mit diesem Trick beendet. Anschließend kann man in vielen Fällen wenigsten noch ungesicherte Dateien in anderen Programmen speichern.

Der Trick bedient sich des in den meisten Macs im ROM vorhandenen Debuggers MicroBug. Auf Systemen, auf denen die Systemerweiterung MacsBug installiert ist, wird statt dessen dieser verwendet.

Um beim Auftreten einer Bombe den Debugger zu starten, bedient man sich des sogenannten Programmierschalters („programmer’s key“ oder auch „interrupt button“). Bei den ursprünglichen Würfelmacs war dieser Schalter ein zusätzliches Plastikteil, das man hinten links in die Lüftungsschlitze des Macs eingeklickt hat, und das neben dem Programmierschalter einen Reset-Knopf zur Verfügung gestellt hat:


(Quelle: Vectronic’s Apple World)

Bei späteren Macs waren die beiden Knöpfe an unterschiedlichen Stellen fest installiert:


(Quelle: Wikipedia)

Beginnend mit dem PowerMac G5, der nur noch mit MacOS X booten konnte, wurde Programmierschalter abgeschafft.

Was muss man nun machen, wenn eine Bombe auftaucht?
Man drückt den Knopf mit dem Symbol
(Wenn die verwendete Tastatur einen Power-Button hat, dann kann man auch den zusammen mit der Apfel- oder Command-Taste drücken.)

Wer MacsBug installiert hat wird jetzt große Augen bekommen, alle anderen sehen anstatt der Bombe jetzt ein kleines Fenster mit nichts weiter als dem Zeichen > 

Dahinter tippen wir folgendes:

SM 0 A9F4
G 0

Die beiden 0 sind Nullen, und hinter jeder Zeile drücken wir die Return-Taste.

In vielen Fällen reicht das, um die Bombe verschwinden zu lassen und uns in den Finder zu werfen. Da die meisten Bomben ihre Ursache darin haben, dass ein Programm irgendwo in den Hauptspeicher des Macs geschrieben hat, wo es nicht hin sollte, empfiehlt sich ein baldiger Neustart des Mac, sobald wir alles gespeichert haben, was nicht gespeichert war. Die nächste Bombe folgt nämlich erfahrungsgemäß recht bald.

Die beiden Zeilen da oben machen übrigens folgendes:

Setze die Speicheradresse 0 auf den Wert A9F4 (= Exit to shell)
Gehe zur Speicheradresse 0

Findige Naturen haben herausgefunden, dass das Eintippen von

G FINDER

den gleichen Effekt hat, das liegt daran, dass der Debugger versucht, zur Speicheradresse FINDER zu springen, die es nicht gibt, und daraufhin einen Absturz und Exit to shell auslöst.