Wiki
Clone wikipymoult / Démos Cymoult
Démonstrations
Afin de montrer l'utilisation de la libama et de la libuminati, nous avons implémenté deux types de managers décrits dans la page explicative du projet.
I. Utilisation des 2 managers
Le premier manager de la bibliothèque est le code de lamanager.c. Ce manager se lance à côté du programme et prend en paramètre le pid du programme à modifier. Les étapes à suivre pour l'exécuter sont :
#! 1. Dans un premier terminal, lancer le programme. 2.a. Dans un second terminal, utiliser "pgrep [nom du programme]" pour trouver son pid. 2.b. Ne pas oublier de changer les permissions de ptrace : "echo 0 > /proc/sys/kernel/yama/ptrace_scope" (peut nécessiter d'être exécuter en tant que root). 2.c. Lancer le manager ("./manager pid"). 3.a. Dans un troisième terminal, utiliser "pgrep manager" pour trouver le pid du manager. 3.b. Exécuter "kill -SIGUSR1 managerpid" pour lancer la mise à jour.
#! 1. Lancer "manager [chemin du programme à lancer]".
II. Différentes démonstrations
La première démonstration demo1/ contient 4 fonctions : tout d'abord un entier que l'on incrémente, puis que l'on décrémente, puis un sleep où on ne fait rien, et enfin une multiplication de l'entier par 2. Il y a donc 3 mises à jour à réaliser, celle contenant le sleep montrant le fait que l'on trouve une fonction dans la pile et que l'on attend avant de la modifier. Le second exemple est un jeu de snake/ repris d'internet (via le projet de Vincent Desprez), sur lequel nous avons utilisé nos managers pour changer le fonctionnement du jeu. La première mise à jour change le comptage des points ainsi que le changement de vitesse du serpent à chaque fruit. La seconde inverse les touches du clavier. Une troisième démonstration est prévue : transformer un jeu de snake en jeu de tétris. Son implémentation n'est pas encore terminée.
Updated