Nous accordons beaucoup d'attention aux outils de développement: nous participons à des débats houleux sur les éditeurs (Vim ou Emacs?), Nous passons beaucoup de temps à personnaliser l'IDE à notre goût, et choisissons avec soin les langages de programmation et les bibliothèques qui s'améliorent et deviennent de plus en plus pratiques chaque jour. Cependant, une catégorie peut être distinguée ici, qui, pour une raison quelconque, reste injustement oubliée: les débogueurs n'ont pas beaucoup changé au cours de la dernière décennie, bien qu'ils restent l'un des outils de base pour détecter les erreurs et naviguer dans le code.
Image: Timothy Dykes @timothycdykes, unsplash.com
Le plus souvent, nous préférons ajouter rapidement quelques print
s au lieu de mettre un point d'arrêt au bon endroit et de le parcourir avec un débogueur - et la question "pourquoi?" ne cesse de m'amuser - après tout, les logs et print
s fournissent des informations limitées et ne permettent pas d'interaction interactive avec le processus en cours (et les débogueurs peuvent même travailler avec des processus "morts"!).
L'une des principales raisons que je vois est l'absence de progrès significatifs dans le développement des débogueurs.
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, . : , , . , — - .
Si vous êtes intéressé à participer au développement, nous serons heureux de vous soutenir, même si la programmation système est encore nouvelle pour vous. Vous pouvez également aider si vous partagez votre expérience de débogage: quels problèmes avez-vous rencontrés, quels outils utilisez-vous et qu'aimeriez-vous voir dans le nouveau débogueur?
Merci d'avoir lu ce texte.