Live Bug Tracer
Description
Live Bug Tracer est une boîte à outils de déboguage. Ce script s'adresse aux développeurs Tcl, mais aussi à l'utilisateur lambda qui y trouvera plusieurs fonctionnalités simples d'utilisation et potentiellement très utiles.
Les retours du débogueur s'affichent en partyline; vous devez donc vous y connecter sans quoi vous ne verrez rien.
Fonctionnalités
- Affichage (et log) automatique du backtrace si votre eggdrop rencontre une erreur.
En cas d'erreurs redondantes, seule la première occurrence est affichée.
Plus besoin d'avoir activé la commande .set en partyline pour pouvoir afficher le backtrace d'une erreur, plus besoin non plus d'être là au bon moment ni d'être hyper rapide pour taper .set errorInfo après qu'une erreur se soit produite.
Exit des prises de tête pour traquer un bug qui se produit une fois par mois et pour lequel on n'est jamais là au bon moment pour observer ce qui s'est passé.
- Différenciation erreur catchée / non catchée et possibilité de n'afficher que les unes, les autres, ou les deux.
- Système anti-boucle infinie permettant de détecter / interrompre / afficher les types courants de boucles infinies.
Un eggdrop qui cesse de répondre, consomme beaucoup de temps processeur et quitte en ping timeout vient vraisemblablement d'exécuter une boucle infinie.
- Surveillance des lectures / écritures / suppression d'une variable statique.
- Surveillance des lectures / écritures / suppression d'une variable temporaire dans une procédure (n'existant que durant l'exécution de la procédure).
- Surveillance des appels / retours / suppression / renommage d'une procédure.
- Surveillance des appels / retours / suppression / renommage d'une commande.
- Traçage de l'exécution d'une procédure ligne par ligne.
Commandes
.autobacktrace <argument(s)>
Permet de gérer le backtrace automatique des erreurs.
Arguments acceptés :
+/-errors
Active/désactive le backtrace automatique des erreurs non-catchées.
+/-catch
Active/désactive le backtrace automatique des erreurs catchées.
status
Affiche le statut du backtrace automatique.
.loopfuse <on/off/status>
Permet d'activer/désactiver la protection anti-boucle infinie, ou d'afficher son statut.
.watch <$variable/procédure/commande> [off]
Commence ou cesse la surveillance d'une variable statique, d'une procédure ou d'une commande.
.watch <$variable> in <procédure> [off]
Commence ou cesse la surveillance d'une variable temporaire dans la procédure spécifiée. Vous ne pouvez avoir qu'une seule surveillance de ce type à la fois.
.trace <procédure> [off]
Commence ou cesse le traçage d'une procédure.
Dans les lignes affichées lors d'un traçage de procédure, "rec" indique la profondeur de récursion et "lvl" le niveau de pile.
.debuglist
Affiche tous les trace actifs posés par Live Bug Tracer.
Certains trace peuvent être suivis de la mention "(latent)", ce qui signifie qu'ils ne sont actifs que durant l'exécution d'une certaine procédure.
.detachdebuggers
Cesse tous les traçages/surveillances que vous avez pu mettre au moyen des commandes .trace ou .watch.
Remarque : toutes les commandes sont disponibles en 2 versions : publique et partyline.
Screenshots
Affichage automatique du backtrace en cas d'erreur.
Protection contre les boucles infinies.
Surveillance en temps réel d'une variable.
Surveillance en temps réel des appels à une procédure.
Surveillance en temps réel des appels à une commande.
Surveillance en temps réel d'une variable dans une procédure.
Traçage de l'exécution d'une procédure.
Changelog
v1.0
v2.0
- Trop de nouveautés et de changements pour tous les énumérer, la v1.0 possédait pour toute fonctionnalité d'afficher le backtrace des erreurs en temps réel.
- Passage sous licence Creative Commons
Téléchargement
Live Bug Tracer v2.0
Laissez vos commentaires / questions / suggestions / rapports de bugs
ici.