Beim Soft-Reset werden alle Scripte im Scripteditor neu ausgeführt. Das kann zu vielerlei Fehlern führen (insbesondere beim Einsatz von alias). Du kannst das Neuausführen des Scripteditors verhindern, in dem du am Anfang des Scripteditors abfragst ob die Scripte schon einmal geladen wurden. Falls ja, dann lass das Main-Script ausführen.
Könnte in etwa so aussehen:
Zitat
Meine Frage also: kann ich irgendwie mir ausgeben lassen, WO eine Funktion aufgerufen wurde? Ähnlich wie der Trace einer Fehlermeldung?
...
Den aktuellen Stacktrace bekommst du mit der Methode Kernel#caller. Aber das hilft dir wenig. Die Endlosschleife ist ja im initialize selbst (genauer: initialize -> old_init -> initialize -> ...)
@ShiningAdvances: Müsste method_defined?(:"old_init") statt defined?(old_init) heißen. Sonst prüfst du nur auf Singletonmethoden.