Als ich vor einigen Jahren zum ersten Mal einen Debugger in einer IDE offen hatte, war das eine Offenbarung. Callstack, lokale Variablen, Breakpoints; davor kannte ich nur backtrace in gdb nachdem ein Programm gekrasht war. Und da waren sie, die vielen Möglichkeiten.
Ich habe mir vorgenommen mich weiter in die Embedded-Entwicklung einzuarbeiten. In dem Zug habe ich mir ein ESP-Prog-Board (USB-JTAG-Interface) besorgt. Als, nach einigen Versuchen, die Debug-UI lief, empfand ich ähnlich wie damals. Es ist schön zu sehen, was Sache ist.
Und ja, sehen ist schön, aber Debugger können mehr. Sie können, was ein Compiler als unmöglich beweisen würde: Variablen verändern. Einfach so. Und Codepfade nehmen, die der Programmlogik nach ausgeschlossen sind. Weil… Nun. Das ist eine andere Frage. “Mit großer Macht kommt große Verantwortung” heißt es.