Il y a quelques temps, j'ai voulu pouvoir utiliser le debugger GDB depuis un script Python en utilisant le module subprocess. J'ai longtemps essayé de résoudre un problème de pipe avant de trouver ce thread qui m'a donné la solution. J'ai donc réutilisé ce code pour en faire une classe simple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | |
Cette classe s'utilise très simplement de la manière suivante :
- On créé un objet GDB auquel on passe le chemin vers l'exécutable de GDB en paramètre ;
- On utilise la méthode send() de cet objet pour exécuter une commande et en obtenir éventuellement le retour ;
- On ferme GDB en utilisant la méthode quit().
Par exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Je partage ce code parce que j'ai eu beaucoup de mal à réussir à faire cela et je pense qu'il peut être utile à beaucoup de développeurs... Vous pouvez télécharger une archive qui contient un exécutable de GDB pour Windows, la classe GDB, un programme crackme.exe sur lequel sont réalisés des tests et le fichier main.py qui contient ces tests...