2012-06-18 13 views
5

gdb ve Emacs kullanarak bir derleme programı hata ayıklamaya çalışıyorum. Benim sorunum, adım adım hata ayıklamaya çalıştığımda, geçerli yürütme satırında bir işaretçi oku göstermiyor.Emacs gdb - derleme hata ayıklama sırasında görüntüleme ok

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 

ve ben bu satırların ile derleme: Ben Hata ayıklamak çalışıyorum kodudur ben Emacs bakın ne

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

olmasıdır. Bu ekran görüntüsünde, şu anda kesme noktasından sonra satırı çalıştırıyorum ve o çizginin işaretçisi görüntülenmiyor. Birine sahip olmak mümkün mü? nasm2.5 veya son kullanılabilir, hepsinin

cevap

0

deneyin, ben, bu 2 yıl geçti hala çözüm arayan umut! eğer, o zaman ben de aynı sorun var bana (TM)

+0

için çalışmak gibi aşağıdaki

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

yani ayıklama DWARF ile bilgi yerine bıçaklamak üretmek için NASM tatlılıkla kandırma deneyin. Emacs 24'ü kullanıyorum ve en son kararlı NASM sürümüne sahibim. Ben sadece bu oku göremiyorum ... Aynı zamanda -g'yi kullandığınız gibi derledim, ama hiçbir şey. – caisah

1

ilk çalışması gerekir indirmek için screenshot