[MinGW] Génération code assembleur

Génération code assembleur [MinGW] - C - Programmation

Marsh Posté le 10-07-2008 à 15:52:46    

Bonjour à tous
 
Je m'amuse à étudier le code assembleur généré par MinGW (GCC porté sous Windows), afin d'en connaître plus sur l'assembleur et sur le système de compilation (effets des options sur le code, etc). Bref.
Ce qui m'ennuie, c'est que le code assembleur généré (option -S) n'indique pas les numéro de ligne et le code C associé en commentaire, tel que le fait VC.
J'ai trouvé l'option -g (et ses dérivés -g1, -g2, -g3) qui permet d'afficher plus d'info dans le fichier assembleur, mais rien de très pertinent. Sauf des LMx, etc qui semblent se rapporter à des numéros de lignes relatives, ne tenant pas compte par exemple des lignes vides dans le code C (qui permettent d'aérer le code). Pas pratique du tout donc hélas pour s'y retrouver entre les instructions C et le code assembleur associé.
 
Donc, ce que je voulais simplement savoir, c'est s'il existe une option GCC (MinGW) qui permet de générer du code assembleur avec, en commentaire, les numéros de ligne absolues (provenant du fichier source C) et l'instruction qui y est associée.
 
Exemple :

Code :
  1. Code C:
  2. (...)
  3. 15: bidulechouette++;
  4. 16: printf("%d",bidulechouette);
  5. 17:
  6. 18: fonctionbidule(bidulechouette);
  7. 19:
  8. 20: bidulechouette*=2;
  9. (...)


 

Code :
  1. Assembleur:
  2. ; (...)
  3. ; line 15 'bidulechouette++;'
  4. ; (code assembleur)
  5. ; line 16 'printf("%d",bidulechouette);'
  6. ; (code assembleur)
  7. ; line 17
  8. ; line 18 'fonctionbidule(bidulechouette);'
  9. ; (code assembleur)
  10. ; line 19
  11. ; line 20 'bidulechouette*=2;'
  12. ; (code assembleur)
  13. ; (...)


 
Merci pour vos réponses ! ;)

Reply

Marsh Posté le 10-07-2008 à 15:52:46   

Reply

Marsh Posté le 10-07-2008 à 21:20:28    

regarde du coté des sorties de -fdump-all-trees mais je crois pas que ca t'aide. Shark sur Mac OS X permets d'avoir une visualisation de ce style par contre.

Reply

Marsh Posté le 10-07-2008 à 23:42:34    

Effectivement, cette option avait l'air intéressante. Mais hélas, elle ne semble pas fonctionner avec MinGW. :( Dommage qu'ils n'aient pas prévu un système plus simple et des options un peu plus portables.  :cry:

Reply

Marsh Posté le 10-07-2008 à 23:50:38    

Code :
  1. gcc -g -c fichier.c
  2. objdump -l -d -M intel fichier.o


---------------
dap.developpez.com
Reply

Marsh Posté le 11-07-2008 à 14:12:03    

Ah merci ! Ca marche impec.  :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed