2012-06-18 6 views
5

gdbとEmacsを使ってアセンブリプログラムをデバッグしようとしています。私の問題は、ステップバイステップでデバッグしようとすると、現在実行中の行にポインタ矢印が表示されないということです。Emacs gdb - アセンブリをデバッグするときに矢印を表示

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で見ると、そのです。このスクリーンショットでは、私は現在ブレークポイントの後の行を実行していて、その行へのポインタは表示されません。それは可能ですか? screenshot

答えて

0

がnasm2.5をダウンロードしたり、最新のようにしてください、それはすべての

+0

すなわち代わりSTABのDWARFでデバッグ情報を生成するNASMを説得しようと、私は正確に同じ問題を抱えています。私はEmacs 24を使用し、最新の安定したNASMバージョンを持っています。私はその矢を見ることができません... 私は '-g'と同じ方法でコンパイルしましたが、何もしませんでした。 – caisah

1

が最初に動作するはずです、私はあなたが解決策を探してまだている願って、それは2年が経ちました!あなたがいる場合は、私のために働くように見える次

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

(TM)

関連する問題