Bonjour,
j'ai un programme en assembleur que je modifie progressivement. Entre chaque phase, je vérifie qu'il marche encore en le compilant avec GCC et l'exécutant, j'utilise aussi GDB pour le débugger et le désassembler.
A présent j'ai deux versions du programme : une qui fonctionne normalement, et une que je ne peux plus désassembler avec GDB. J'obtiens l'erreur suivante :
(gdb) disass main
No function contains specified address. |
Alors que dans la version précédente, ça fonctionne bien.
Je compile avec gcc version 3.2.2 et l'option -g, sur un système linux (redhat 9). Savez-vous d'où peut venir le problème, et surtout comment désassembler le programme ?
J'ai eu une idée : dans le "man" de GCC, il est précisé que l'option -fomit-frame-pointer (que je n'utilise pas) peut rendre le debuggage impossible sur certains systèmes. Or au cours de mes modifications, j'ai supprimé l'utilisation du registre %ebp partout où c'était possible. Cela pourrait-il causer le problème ? (Oui je ne connaissais pas cette option au début, sinon je ne l'aurais pas fait à la main... D'ailleurs je ne connais pas grand chose à l'assembleur et à GDB/GCC alors soyez patients s'il vous plaît...)
Enfin, merci d'avance, et excusez-moi si la question a déjà été posée: j'ai fait une recherche infructueuse sur le mot "désassembler" dans ce forum.