Tôi đang cố gỡ lỗi chương trình lắp ráp bằng gdb và Emacs. Vấn đề của tôi là, khi tôi cố gắng gỡ lỗi từng bước, nó không hiển thị một mũi tên con trỏ tại dòng thực hiện hiện tại. Mã Tôi đang cố gắng để gỡ lỗi là:Emacs gdb - hiển thị mũi tên khi gỡ lỗi lắp ráp
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
và tôi đang biên soạn với những dòng này:
nasm -f elf -g -F stabs eatsyscall.asm -l eatsyscall.lst
ld -melf_i386 -o eatsyscall eatsyscall.o
Những gì tôi nhìn thấy trong Emacs là. Trong ảnh chụp màn hình này, tôi hiện đang thực hiện dòng sau điểm ngắt và không có con trỏ nào đến dòng đó xuất hiện. Có thể có một cái không?
Tôi có vấn đề chính xác như vậy. Tôi sử dụng Emacs 24 và có phiên bản NASM ổn định mới nhất. Tôi không thể thấy mũi tên đó ... Tôi cũng đã biên dịch theo cùng cách bạn đã sử dụng '-g', nhưng không có gì. – caisah