TCL-DebugLoader est un script Tcl conçu pour être chargé en premier dans la configuration d'un bot Eggdrop. Il facilite le chargement d'autres scripts Tcl tout en fournissant une gestion robuste des erreurs et des fonctionnalités avancées de débogage inspirées de LiveBugTracer.
Ce script professionnel assure la stabilité du bot même en cas d'erreurs de syntaxe dans les scripts chargés, tout en offrant un suivi détaillé des erreurs pour les développeurs.
- Redirection des erreurs : Capture et enregistre automatiquement toutes les erreurs Tcl dans
logs_Error/${::botnet-nick}_Error.logavec traces complètes de la pile d'exécution - Journalisation sur canal IRC : Envoi des messages d'erreur vers un canal IRC configurable (
CONF(CHANNEL_LOG)) pour un suivi en temps réel - Protection contre les plantages : Garantit la stabilité de l'Eggdrop même si un script contient des erreurs de syntaxe, avec option d'arrêt du bot (
DIE_ON_ERROR) - Traçage de variables : Surveillance des opérations de lecture/écriture/suppression sur des variables spécifiées (ex:
CONF) pour le débogage - Protection contre les boucles infinies : Détection et interruption des boucles infinies dans les commandes
foretwhile(configurable viaANTI_INFINITE_LOOP) - Rapport d'erreurs réseau : Envoi des messages d'erreur aux autres bots via
putallbots(configurable viaNETWORK_ERROR_REPORT) - Interface développeur optimisée : Centralisation des rapports d'erreur, suppression des erreurs en double et traces détaillées pour faciliter le débogage
- Eggdrop : Version 1.6.20 ou supérieure
- Tcl : Version 8.6 ou supérieure (généralement incluse avec Eggdrop)
- Permissions d'écriture : Le bot doit avoir les permissions d'écriture dans le répertoire
logs_Error/pour la création des fichiers de journalisation
git clone https://github.com/ZarTek-Creole/TCL-DebugLoader.gitAlternativement, téléchargez le fichier ZIP depuis le dépôt GitHub et extrayez-le.
Copiez le fichier DebugLoader.tcl vers le répertoire scripts de votre bot Eggdrop :
cp TCL-DebugLoader/DebugLoader.tcl /chemin/vers/eggdrop/scripts/Ouvrez votre fichier de configuration Eggdrop (ex: eggdrop.conf) et ajoutez la ligne suivante en haut de la section de chargement des scripts :
source scripts/DebugLoader.tclImportant : Ce script doit être chargé avant tous les autres scripts pour intercepter correctement les erreurs.
Dans la console Eggdrop ou sur IRC, exécutez :
.rehash
Alternativement, redémarrez le bot :
./eggdrop -m eggdrop.confDans DebugLoader.tcl, configurez la variable CONF(CHANNEL_LOG) pour spécifier le canal IRC de rapport d'erreurs :
set CONF(CHANNEL_LOG) "#debug"- DIE_ON_ERROR : Arrête le bot en cas d'erreur fatale (désactivé par défaut)
- ANTI_INFINITE_LOOP : Active la protection contre les boucles infinies
- NETWORK_ERROR_REPORT : Active l'envoi des erreurs aux autres bots du réseau
- Variables à tracer : Personnalisez les variables à surveiller pour le débogage
Une fois installé et configuré, TCL-DebugLoader fonctionne automatiquement en arrière-plan. Toutes les erreurs Tcl sont :
- Enregistrées dans
logs_Error/${::botnet-nick}_Error.logavec horodatage et trace complète - Envoyées au canal IRC configuré (si défini)
- Optionnellement diffusées aux autres bots du réseau
[10:30:45] [ERROR] Script: test.tcl
[10:30:45] Message: invalid command name "commande_invalide"
[10:30:45] Stack trace:
invoked from within "commande_invalide"
(file "scripts/test.tcl" line 42)
Le script peut surveiller l'accès aux variables critiques :
# Trace automatique de la variable CONF
trace add variable CONF {read write unset} ::DebugLoader::traceVariableProtection automatique contre les boucles infinies :
# Configuration du timeout (en millisecondes)
set CONF(LOOP_TIMEOUT) 5000Les contributions sont les bienvenues ! N'hésitez pas à :
- Forker le projet
- Créer une branche pour votre fonctionnalité (
git checkout -b feature/amelioration) - Commiter vos changements (
git commit -m 'Ajout d'une fonctionnalité') - Pousser vers la branche (
git push origin feature/amelioration) - Ouvrir une Pull Request
Ce projet est distribué sous licence MIT. Voir le fichier LICENSE pour plus de détails.
ZarTek-Creole
- GitHub: @ZarTek-Creole
- Projet: TCL-DebugLoader
Pour signaler un bug ou demander une fonctionnalité, veuillez ouvrir une issue sur le dépôt GitHub.
- Inspiré par LiveBugTracer pour ses fonctionnalités de débogage avancées
- Communauté Eggdrop pour le support et les retours
- Tous les contributeurs qui ont participé à l'amélioration de ce projet
Note : Ce script est un outil de développement professionnel. Pour une utilisation en production, assurez-vous de tester toutes les configurations dans un environnement de test avant le déploiement.