- Débogueur de voyage dans le temps facile à utiliser, prenant en charge divers langages de programmation
- Enregistre l’exécution du programme pour créer des fichiers de trace autonomes et partageables, et permet d’avancer ou de remonter dans l’exécution dans une interface GUI tout en consultant l’historique de tous les emplacements mémoire
- Avantages du débogage de voyage dans le temps
- Résout facilement les bugs difficiles à reproduire : si l’on dispose d’un enregistrement de l’exécution où le bug s’est produit, il est possible d’en identifier la cause en moins de 30 minutes
- Connaître l’origine d’une valeur facilite la résolution des bugs
- Lorsqu’une sortie inattendue se produit dans le programme, il est possible de cliquer sur l’événement pour voir immédiatement où le problème est apparu
- CodeTracer suit l’endroit où cette valeur a été créée afin d’aider à trouver la cause racine du bug en quelques déplacements seulement
- Il est possible d’explorer librement l’exécution du programme en avançant et en reculant à n’importe quel moment
- Le traçage utilise un format ouvert, et des projets de prise en charge de langages comme Ruby et Python sont en cours
- Intégration prévue avec le backend RR pour prendre en charge le débogage de langages de programmation système comme C/C++, Rust, Nim, D, Zig, Go, Fortran et FreePascal
Principales fonctionnalités de CodeTracer
Débogage omniscient (Omniscience)
- Permet de voir instantanément les valeurs passées et futures des variables à une ligne de code précise pendant l’exécution
- Permet d’explorer facilement les changements de valeur des variables dans une boucle
- Distingue clairement le code exécuté du code non exécuté
Tracepoints
- Permet de voir instantanément les changements de valeur des variables dans le programme sans exécuter de code supplémentaire
- Facilite l’ajout de conditions, d’appels de fonctions et d’affichages de données pour le débogage
Call Trace
- Fournit non pas une simple stack trace, mais l’arbre complet des appels de fonctions de toute l’exécution du programme
- Navigation facile grâce au filtrage et au tri
Exploration de l’état et de l’historique (State and History Explorer)
- Permet de suivre l’historique des changements de valeur de toutes les variables
- Permet d’aller immédiatement à l’endroit du code où la valeur d’une variable a changé
- Suit automatiquement la valeur d’origine des variables copiées pour faciliter l’analyse des bugs
Journal des événements (Event Log)
- Organise et présente les événements importants du programme dans l’ordre chronologique
- Un clic sur un événement permet d’aller immédiatement au code correspondant à cet instant
Sortie du terminal (Terminal Output)
- Reproduit et enregistre les sorties
stdout et stderr comme dans un terminal pour permettre de consulter la sortie du programme enregistrée
- Un clic permet d’aller à l’emplacement exact du code où la sortie a été produite
Navigation à la souris (Mouse Stepping)
- Permet d’aller immédiatement à une partie précise du code à l’aide de la souris
- Déplacement par ligne : clic du milieu (
Ctrl+clic possible)
- Entrée dans une fonction : double-clic sur un appel de fonction pour entrer à l’intérieur (
Ctrl+Alt+clic possible)
- Options supplémentaires : fonctionnalités additionnelles accessibles via le menu du clic droit
Scratchpad
- Permet de figer les valeurs des variables à un instant donné pour les comparer et les analyser
- Aide à analyser les problèmes en comparant visuellement le flux d’exécution du code
Commandes CLI de CodeTracer
ct run <application> - exécute le programme et l’enregistre automatiquement
ct record <application> - crée un fichier de trace
ct replay - rejoue le fichier de trace créé
ct replay <program-name> - charge le dernier enregistrement d’exécution
ct replay --id=<trace-id> - exécute avec un ID de trace spécifique
ct replay --trace-folder=<trace-folder> - exécute un fichier de trace dans un dossier spécifique
ct help / ct --help - affiche les commandes disponibles
ct version - affiche la version actuelle
Raccourcis clavier
- Les raccourcis par défaut sont familiers pour les utilisateurs de Visual Studio™
- Les fonctions inversées des fonctionnalités de débogage existantes sont fournies avec la touche
Shift (F10 = "étape suivante", Shift+F10 = "étape précédente")
- Il est possible de personnaliser les raccourcis en modifiant le fichier
~/.config/codetracer/.config.yml
1 commentaires
Commentaires sur Hacker News
Impressionnant. Il y a longtemps, j’ai eu l’occasion de faire des demandes de fonctionnalités aux concepteurs de processeurs Intel
Le support de Noir a du sens, car les traces d’exécution sont particulièrement précieuses dans les preuves ZK
Si vous utilisez Clojure ou ClojureScript, je recommande de regarder FlowStorm
Noir est un langage spécifique à un domaine pour les systèmes de preuve SNARK
Je me demande pourquoi CodeTracer a été écrit en deux langages
J’aime vraiment beaucoup. J’ai toujours voulu quelque chose comme ça
Ça a l’air sympa, mais sur des systèmes de production, les fichiers de trace vont grossir très vite
Merci de faire vivre l’écosystème Nim
Très enthousiaste à ce sujet. J’ai déjà fait un don sur Open Collective
Félicitations pour le lancement. Vous avez fait un excellent travail jusqu’ici