2012-06-16 15 views
6

Powiel możliwe:
Switching to assembly in gdbMarka instrukcję montażu wyświetlacz gdb zamiast C

jestem debugowanie kodu w gdb. Po uruchomieniu polecenia ni (dla ) następna instrukcja wyświetla kod C. Wyświetlenie wykonanej instrukcji montażu byłoby dla mnie bardziej sensowne.

(gdb) ni 
0x0804845a 28   tmp = *lpp; 
(gdb) ni 
0x0804845c 28   tmp = *lpp; 
(gdb) ni 
0x0804846a 29   **lpp = (unsigned long) &buf; 
(gdb) ni 
0x0804846c 29   **lpp = (unsigned long) &buf; 

Czy istnieje jakiś sposób, aby gdb wyświetlić kod montaż zamiast, bez wywoływania disassm za każdym razem?

EDYCJA: Wiem o poleceniu layout asm, które wyświetla kod w oknie readline. Chciałbym zobaczyć demontaż na linii poleceń gdb, a nie w oknie gdb.

+2

@OliCharlesworth nie jest dokładnym duplikatem, ale jedna z odpowiedzi (nie akceptowana) odpowiada na to pytanie. –

+0

@DmitriChubarov: Tak, zawsze szukam duplikatów odpowiedzi, a nie pytań. –

Odpowiedz

11

Kiedy krok poprzez ni, wyświetlając kolejną garść instrukcji montażu jest często bardzo przydatne.

(gdb) display/4i $pc 

pokaże 4 kolejne instrukcje za każdym razem, gdy GDB się zatrzyma.

6

Czy próbowałeś użyć układu ASU TUI?

Jest dość przydatny.

(gdb) layout asm 
+0

Dziękuję za to. Nie wiedziałem. –