Auteurs : Gatien BERTIN, Mathurin HAUVILLE
Date : 5 février 2025
- Lancer le programme JDISimpleDebugger.java
- Copier le fichier breakpoints.txt dans le répertoire
target/classes
- Configurer pour exécuter le programme depuis le répertoire
target/classes
- Exécuter le programme avec la configuration créée à l'étape précédente
Note
Par défaut un breakpoint est placé à la ligne 8 de la classe JDISimpleDebuggee
.
Vous pouvez le modifier en éditant le fichier breakpoints.txt
Le debugger utilise le pattern commande pour permettre à l'utilisateur de contrôler le debugger.
Le programme se lance depuis la classe JDISimpleDebugger. Elle crée une nouvelle instance de ScriptableDebugger et attache la classe JDISimpleDebuggee qui va être utilisé pour tester le debugger
La classe ScriptableDebugger garde la même structure que celle
initiale. Dans la méthode startDebugger()
, lorsque l'événement est du type ClassPrepareEvent
, on charge le fichier
de breakpoints. Si un évenement est de type BreakpointEvent
ou bien StepEvent
, alors on
lance
l'interpréteur de commande qui permet à l'utilisateur de contrôler le debugger.
La classe CommandInterpreter permet à l'utilisateur de contrôler le debugger avec les commandes disponibles. Elle assigne l'ensemble des commandes à un mot clé qui devra être saisi par l'utilisateur pour déclencher la commande en question.
La classe BreakpointManager permet de gérer les breakpoints. Elle contient l'ensemble des méthodes relatives à la gestion des breakpoints.
- Demande à l'utilisateur un nombre de pas à revenir en arrière.
- Sauvegarde la valeur du PC actuel.
- Redémarre la vm.
- Enregistre le PC avec la valeur sauvegardée moins le nombre de pas à revenir en arrière.
- La méthode
initStepWithPC()
de la classe ScriptableDebugger exécute la commandestep
pour revenir à la position souhaitée.
Commande step-back
avec un pas en arrière.
Affiche la valeur du PC actuel.
Ajoute un breakpoint à la ligne demandée et ajoute ce breakpoint dans le fichier breakpoints.txt pour retrouver les breakpoints à chaque lancement.
Ajoute un breakpoint à la ligne demandée sans l'ajouter dans le fichier breakpoints.txt.
Continue l'exécution du programme jusqu'au prochain breakpoint. Utilise la commande step
pour avancer jusqu'au prochain breakpoint.
N'est pas implémentée.