2012-06-18 22 views
5

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? screenshot

Trả lời

0

Cố gắng tải nasm2.5 hoặc mới nhất hiện có, cần làm việc

+0

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

1

trước hết, tôi hy vọng bạn là vẫn tìm kiếm các giải pháp, nó đã được 2 năm! nếu bạn đang có, sau đó cố gắng dỗ dành NASM để tạo ra thông tin gỡ lỗi với lùn thay vì STAB tức là sau

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

điều đó dường như làm việc cho tôi (TM)

Các vấn đề liên quan