6

gdb と Emacs を使用してアセンブリ プログラムをデバッグしようとしています。私の問題は、段階的にデバッグしようとすると、現在実行中の行にポインターの矢印が表示されないことです。デバッグしようとしているコードは次のとおりです。

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

そして、私はこれらの行でコンパイルしています:

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

私がEmacsで見ているのはそれです。このスクリーンショットでは、現在、ブレークポイントの後の行を実行していますが、その行へのポインターは表示されません。持つことは可能ですか? スクリーンショット

4

2 に答える 2

1

nasm2.5 または利用可能な最新のものをダウンロードしてみてください。動作するはずです。

于 2012-06-26T11:15:53.417 に答える