Wir widmen Entwicklungswerkzeugen viel Aufmerksamkeit: Wir nehmen an hitzigen Debatten über Editoren (Vim oder Emacs?) Teil, verbringen viel Zeit damit, die IDE nach unserem Geschmack anzupassen, und wählen sorgfältig Programmiersprachen und Bibliotheken aus, die von Tag zu Tag besser und bequemer werden. Hier kann jedoch eine Kategorie unterschieden werden, die aus irgendeinem Grund zu Unrecht vergessen bleibt: Debugger haben sich in den letzten zehn Jahren nicht wesentlich verändert, obwohl sie immer noch eines der grundlegenden Werkzeuge zum Erkennen von Fehlern und zum Navigieren im Code sind.
Bild: Timothy Dykes @timothycdykes, unsplash.com
Meistens ziehen wir es vor, schnell ein paar prints hinzuzufügen, anstatt einen Haltepunkt an der richtigen Stelle zu platzieren und ihn mit einem Debugger zu durchlaufen - und die Frage "Warum?" hört nicht auf, mich zu amüsieren - schließlich printliefern Protokolle und s nur begrenzte Informationen und erlauben keine interaktive Interaktion mit dem laufenden Prozess (und Debugger können sogar mit "toten" Prozessen arbeiten!).
Einer der Hauptgründe, die ich sehe, ist der Mangel an signifikanten Fortschritten bei der Entwicklung von Debuggern.
GDB , . , 4K, - , . , IDE VS Code ( , JavaScript), - - .
: Rust "" — , , . " ", , . , , — , .
. GDB LLDB, : (Go Rust) , C C++. — , — , . — Go Java LLDB.
, ? , Rust! , . Delve , ( — Go) , x86-64 Windows/Linux/macOS.
, , , . : - , ( - ). REPL Jupyter ( , , ).
, , , , , .
, Headcrab, . : , , . , — - .
Wenn Sie an der Entwicklung teilnehmen möchten, unterstützen wir Sie gerne, auch wenn die Systemprogrammierung für Sie noch neu ist. Sie können auch helfen, wenn Sie Ihre Debugging-Erfahrung teilen: Welche Probleme sind aufgetreten, welche Tools verwenden Sie und was möchten Sie im neuen Debugger sehen?
Vielen Dank für das Lesen dieses Textes.