[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: