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
için çalışmak gibi aşağıdaki
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