Communauté sur les Eggdrops - Community about Eggdrops
Live Bug Tracer (version actuelle : 2.0) - Printable Version

+- Communauté sur les Eggdrops - Community about Eggdrops (https://forum.eggdrop.fr)
+-- Forum: Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum: Scripts TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=4)
+---- Forum: Releases et support (https://forum.eggdrop.fr/forumdisplay.php?fid=20)
+---- Thread: Live Bug Tracer (version actuelle : 2.0) (/showthread.php?tid=410)



Live Bug Tracer (version actuelle : 2.0) - MenzAgitat - 30/05/2009

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 :

[Image: http://img715.imageshack.us/img715/6030/lbterror.png]

[Image: http://img51.imageshack.us/img51/7697/lbtloopfuse.png]

[Image: http://img571.imageshack.us/img571/1584/lbtwatchvariable.png]

[Image: http://img28.imageshack.us/img28/5632/lbtwatchproc.png]

[Image: http://img13.imageshack.us/img13/4426/lbtwatchcommand.png]

[Image: http://img21.imageshack.us/img21/3065/lbtwatchvariableinproc.png]

[Image: http://img838.imageshack.us/img838/5870/lbttrace.png]


Changelog :
Quote:v1.0
  • 1ère version
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


RE: [script] Live Bug Tracer (version actuelle : 2.0) - MenzAgitat - 06/03/2012


Nouvelle version disponible : v2.0

Changelog partiel :
Quote: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
Veuillez vous reporter à ce post pour une description détaillée des nouveautés.

Téléchargement :

Live Bug Tracer v2.0

Laissez vos commentaires / suggestions / rapports de bugs.



RE: [script] Live Bug Tracer (version actuelle : 2.0) - ZarTek - 24/06/2012

Bonjour,
J'ai un petit problème sur un de mes eggdrops quand je le lance avec ce script :


tcl
[21:39:20] invalid command name "::tcl::info::commands"
    while executing
"::tcl::info::commands ::LiveBugTracer::uninstall"
    (file "scripts/Live_Bug_Tracer.tcl" line 1)


Voici plus d'informations surmon eggdrop :

Code:
Eggdrop v1.8.0+unsignedtraffic (C) 1997 Robey Pointer (C) 2010 Eggheads
  (patches: CVS 1320962776 unsignedtraffic)
Configured with:
Compiled with: IPv6, TLS, handlen=32

Eggdrop v1.8.0+unsignedtraffic (C) 1997 Robey Pointer (C) 2010 Eggheads
[21:31:46] --- Loading eggdrop v1.8.0+unsignedtraffic (Sun Jun 24 2012)
[21:31:46] Listening at telnet port 3333 (all).
[21:31:46] Module loaded: channels
[21:31:46] Module loaded: dns
[21:31:46] Module loaded: transfer         (with lang support)
[21:31:46] Module loaded: share
[21:31:46] Module loaded: server
[21:31:46] Module loaded: ctcp
[21:31:46] Module loaded: irc
[21:31:46] Module loaded: notes            (with lang support)
[21:31:46] Module loaded: console          (with lang support)
[21:31:46] Module loaded: blowfish
[21:31:46] Module loaded: uptime
Je ne comprend pas qu'il arrive pas a avoir une commande comme ::tcl::info::commands, quelqu'un à une idée ?


RE: [script] Live Bug Tracer (version actuelle : 2.0) - MenzAgitat - 25/06/2012

Test fait avec un "Eggdrop v1.8.0+stripmoar" (1080003 CVS 1340407724 stripmoar), ça fonctionne.
Peut-être devrais-tu mettre ton egg à jour, ce problème semble être corrigé dans les nouvelles versions.


RE: [script] Live Bug Tracer (version actuelle : 2.0) - ZarTek - 26/06/2012

Le problème est identique sous CVS 1340407724 stripmoar.

Je ne comprend pas, ça viendrai de TCL ?
Comment je peu vérifier où ça set "::tcl::info::commands" c'est dans des pkgindex.tcl quelque part ?


RE: Live Bug Tracer (version actuelle : 2.0) - ZarTek - 18/04/2022

A titre totalement informatif, si vous rencontrer l'erreur :

Quote:[Live Bug Tracer - Erreur] La version de votre Eggdrop est 1.9.1 1090102; Live Bug Tracer ne fonctionnera correctement que sur les Eggdrops version 1.6.20 ou supérieure.

Et que vous utilisez une version plus récente que 1.6.20 telle que 1.9.x le script Live Bug Tracer fonctionne après une modification. Supprimer la ligne 115 contenant :


tcl
if { [join [split [::tcl::string::range [lindex $version 0] 0 5] "."] ""] < 1620 } { putloglev o * "\00304\[Live Bug Tracer - Erreur\]\003 La version de votre Eggdrop est \00304[set ::version]\003; Live Bug Tracer ne fonctionnera correctement que sur les Eggdrops version 1.6.20 ou supérieure." ; return }


Et relancer votre eggdrop.



méthode 2:
Si vous voulez garder la vérification de version remplacer a la ligne 115

tcl
if { [join [split [::tcl::string::range [lindex $version 0] 0 5] "."] ""] < 1620 } {


par


tcl
if { [package vcompare [regexp -inline {^[[:digit:]\.]+} $::version] 1.6.20] == -1 } {




RE: Live Bug Tracer (version actuelle : 2.0) - CrazyCat - 18/04/2022

Déjà signalé dans d'autres scripts (par exemple ici) mais ça mérite effectivement d'être redit et je vais faire un sujet épinglé pour le mettre en avant comme il faut