dimanche 19 octobre 2008

La synthaxe intel dans GDB gnu debugger

Enfaite je ne m' etais jamais interresser au option de configuration de GDB, donc en cherchant un peu j' ai trouver comment obtenir des output en synthaxe INTEL.

pour simplement placer l' output assembleur (intel) dans un fichier on peut faire comme ça:
~$ gcc -S -masm=intel essai.c

napol3on@s4t4n:~$ cat essai.s
.file "essai.c"
.intel_syntax noprefix
.section .rodata
.LC0:
.string "hello world"
.text
.globl main
.type main, @function
main:
lea ecx, [esp+4]
and esp, -16
push DWORD PTR [ecx-4]
push ebp
mov ebp, esp
push ecx
sub esp, 4
mov DWORD PTR [esp], OFFSET FLAT:.LC0
call printf
mov eax, 0
add esp, 4
pop ecx
pop ebp
lea esp, [ecx-4]
ret
.size main, .-main
.ident "GCC: (Ubuntu 4.3.2-1ubuntu10) 4.3.2"
.section .note.GNU-stack,"",@progbits

Mais le mieux est que cette option soit constante.
Donc pour configurer GDB il faut créer un fichier .gdbinit dans le /home et c' est ici que l' on place les commandes qu' il va lire au démarrage.
donc la commande a placer dans ce fichier est :
set disassembly-flavor intel
Vous pouvez en apprendre plus ici :
http://www.ibm.com/developerworks/aix/library/au-gdb.html

Edit: puisque l' on est dans la synthaxe intel il serais bien de mettre objdump aussi avec cette synthaxe donc pour avoir une output en synthaxe intel sur objdump il faut rajouter:
objdump -M intel ./executable

sur la ligne de commande.

Aucun commentaire: