2012-06-18 10 views
5

Sto provando a eseguire il debug di un programma di assemblaggio utilizzando gdb ed Emacs. Il mio problema è che, quando provo a eseguire il debug passo dopo passo, non mostra una freccia del puntatore sulla linea di esecuzione corrente. Il codice che sto cercando di eseguire il debug è:Emacs gdb - freccia del display durante il debug del gruppo

SECTION .data    ; Section containing initialised data 

    EatMsg: db "Eat at Joe's!",10 
    EatLen: equ $-EatMsg  

SECTION .bss   ; Section containing uninitialized data 

SECTION .text   ; Section containing code 

global _start   ; Linker needs this to find the entry point! 

_start: 
    nop   ; This no-op keeps gdb happy... 
    mov eax,4  ; Specify sys_write call 
    mov ebx,1  ; Specify File Descriptor 1: Standard Output 
    mov ecx,EatMsg  ; Pass offset of the message 
    mov edx,EatLen  ; Pass the length of the message 
    int 80H   ; Make kernel call 

    MOV eax,1  ; Code for Exit Syscall 
    mov ebx,0  ; Return a code of zero 
    int 80H   ; Make kernel call 

e sto compilazione con queste righe:

nasm -f elf -g -F stabs eatsyscall.asm -l eatsyscall.lst 
    ld -melf_i386 -o eatsyscall eatsyscall.o 

Quello che vedo in Emacs è che. In questo screenshot eseguo attualmente la linea dopo il breakpoint e non viene visualizzato alcun puntatore a tale linea. È possibile averne uno? screenshot

risposta

0

tenta di scaricare nasm2.5 o l'ultima disponibile, dovrebbe funzionare

+0

ho lo stesso identico problema. Uso Emacs 24 e ho l'ultima versione NASM stabile. Non riesco a vedere quella freccia ... Ho anche compilato nello stesso modo in cui hai usato '-g', ma niente. – caisah

1

prima di tutto, spero che tu sia ancora cercando la soluzione, è stato di 2 anni! se si è, quindi provare lusinghe nasm per generare le informazioni di debug con NANO, invece di STAB cioè il seguente

nasm -f elf -g -F dwarf eatsyscall.asm ... 

che sembra funzionare per me (TM)

Problemi correlati