Re: gdb display
On Sat, Apr 20, 2002 at 04:56:27AM +0400, dafgadfg asgga wrote:
> hello evry body.
>
> Je suis en train de compiler de l'assembleur et j'aimerais avoir un dump des
> registre apres chaque instruction avec le meme formats que les oops messages.
>
> QQ un sait comment on fait ca ?
> sous gdb, les options que je trouve permette juste un registre par ligne et je
> les voudrais presente comme dans un debug (tous sur 2 ou trois ligne)
>
> Merci d'avance les gars.
>
Tu colles ça dans ton ~/.gdbinit:
define myni
ni
x /6i $eip
printf "^[[11H-16(%%ebp):"
x /1xw $ebp - 0x10
printf "^[[12H-12(%%ebp):"
x /1xw $ebp - 0x0c
printf "^[[13H -8(%%ebp):"
x /1xw $ebp - 0x08
printf "^[[14H -4(%%ebp):"
x /1xw $ebp - 0x04
printf "^[[15H (%%ebp):"
x /1xw $ebp - 0x00
printf "^[[11;36H 4(%%ebp):"
x /1xw $ebp + 0x04
printf "^[[12;36H 8(%%ebp):"
x /1xw $ebp + 0x08
printf "^[[13;36H 12(%%ebp):"
x /1xw $ebp + 0x0c
printf "^[[14;36H 16(%%ebp):"
x /1xw $ebp + 0x10
printf "^[[15;36H 20(%%ebp):"
x /1xw $ebp + 0x14
printf "\neax: %08x ebx: %08x ecx: %08x edx: %08x\n", $eax, $ebx, $ecx, $edx
printf "ebp: %08x esp: %08x edi: %08x esi: %08x\n\n", $ebp, $esp, $edi, $esi
info stack 1
end
ensuite, lance gdb comme d'habitude, mais au lieu de faire 'n' ou 'ni' pour
passer à la ligne suivante, utilise 'myni'.
Ca donne des trucs de ce genre :
(last instruction) 0x804a2ae <main+10>: lea 0xc(%ebp),%eax
0x804a2b1 <main+13>: push %eax
0x804a2b2 <main+14>: lea 0x8(%ebp),%eax
0x804a2b5 <main+17>: push %eax
0x804a2b6 <main+18>: call 0x8049ab4 <gtk_init>
0x804a2bb <main+23>: add $0x10,%esp
0x804a2be <main+26>: add $0xfffffff4,%esp
-16(%ebp):0xbffffaac: 0x4032ef48 4(%ebp):0xbffffac0: 0x4031c17f
-12(%ebp):0xbffffab0: 0x4041ae48 8(%ebp):0xbffffac4: 0x00000001
-8(%ebp):0xbffffab4: 0x400097c0 12(%ebp):0xbffffac8: 0xbffffb24
-4(%ebp):0xbffffab8: 0xbffffad8 16(%ebp):0xbffffacc: 0xbffffb2c
(%ebp):0xbffffabc: 0xbffffaf8 20(%ebp):0xbffffad0: 0x0804cdb0
eax: bffffac8 ebx: 4041ae48 ecx: 00000001 edx: 0804a2a4
ebp: bffffabc esp: bffffa7c edi: bffffb24 esi: 400135cc
#0 0x0804a2b1 in main (argc=1, argv=0xbffffb24) at main.cpp:34
Bon, ca peut être adapté suivant les besoins, mais l'idée est là.
DindinX
--
David@dindinx.org
--
To UNSUBSCRIBE, email to debian-user-french-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Reply to: