Premiers pas avec artEoz – Visualisation en mode pas-à-pas
Ces vidéos illustrent la prise en main du logiciel artEoz pour visualiser des schémas mémoire correspondant à du code Java ou à du code Python.
Démo en java
Démo en python
Visualisation des objets morts
Les objets morts sont des instances de classe qui ne sont plus référencées par une variable ou un champ de classe. L’option « objets morts » du menu « Schéma » permet de visualiser, sous forme grisée, les instances des classes qui ont été construites, mais qui ne sont plus accessibles par les variables du programme.
Un objet accessible peut être obtenu en suivant une chaîne de pointeurs ou de références.
Ceci permet de montrer l’utilisation de la mémoire et de comprendre le travail ultérieur d’un ramasse-miettes.
La vidéo illustre l’utilisation de cette option dans le cas de la programmation en Java, l’utilisation est similaire dans le cas de Python.
En java seulement
Visualisation de la pile à l’exécution
Démo en java
Les variables du code apparaissent dans la pile à l’exécution. Le schéma représenté se rapproche ainsi plus de ce de qui se passe réellement en mémoire. Cette représentation permet de décomposer l’appel d’une fonction, lors d’une visualisation en mode pas-à-pas :
- clic 1, visualisation des informations dans la pile :
- l’environnement de la fonction (symbolisé ici par la notation « … » pour ne pas entrer dans les détails)
- la place pour le résultat si la fonction retourne une valeur
- le receveur « this »
- les paramètres
- clic 2 : résultat de l’exécution de la fonction avec ou sans état intermédiaire pour stocker le résultat dans la case « result »
Démo en python
Les variables du code apparaissent dans la pile à l’exécution. Le schéma représenté se rapproche ainsi plus de ce qui se passe réellement en mémoire. Cette représentation permet de décomposer l’appel d’une fonction, lors d’une visualisation en mode pas-à-pas :
- clic 1 : visualisation dans la pile de la valeur de retour (si c’est un appel de fonction avec retour), rien sinon
- clic 2 : visualisation des paramètres dans la pile,
- clic 3 : mise à jour de la valeur du retour, si nécessaire.
La vidéo ci-dessous l’évolution de la pile lors de l’appel d’une fonction récursive, ici la factorielle.
Aide en ligne
Pour faire afficher le profil des fonctions (définies dans la classe et héritées), il suffit de double-cliquer sur le nom de cette classe dans la fenêtre du code java utilisateur puis de cliquer sur l’icône de demande d’informations.
Attention, le mot sélectionné ne change pas forcément visuellement (cela dépend du système de votre ordinateur), et le curseur se déplace à la fin du code…
En java seulement
Profondeur des chaînages
La profondeur des chaînages, c’est-à-dire le nombre de liens suivis à partir de chaque variable, est limitée. Elle peut être augmentée ou diminuée en fonction des besoins.