9

Ubuntuで書いた小さな.asmファイルをデバッグしようとしています。しかし、シンボルテーブルがロードされておらず、助けを求めているという問題が発生しています。

私は自分のプログラムを次のようにコンパイルしています。

nasm -f elf -g -F dwarf bs.asm
gcc -m32 -g bs.o -o bs

実行すると実行可能ファイルが生成されます

gdb bs 

デバッグシンボルがないことを示すメッセージが表示され、ブレークポイントを設定しようとすると

b main 

ファイルに関数が含まれていても関数が定義されていないことを示しており、。/bsを使用して実行できます。

組み立て時に-Fドワーフを追加することを提案するいくつかの投稿を読みましたが、誰かが洞察を持っている場合は役に立ちませんでした。

4

3 に答える 3

14

次のコマンドでファイルを組み立てます:-

nasm -f elf -F dwarf -g file.asm
ld -m elf_i386 -o file file.o

そしてgdbを使用し、

于 2014-05-29T04:46:52.430 に答える
4

cpowel2 は彼自身の問題を解決しました:

解決済み: 他の誰かが同じ問題を抱えていた場合に備えて (ネット上に大量の投稿があるようです)、ファイルのセクション .txt 部分をセクション .text に変更し、gdb が認識されるようにすることで問題を解決できました。それをすぐに。

于 2012-09-16T12:20:50.683 に答える
0

セクション .text

; nasm - gdb がそれを取得するには、テキスト セクションを小文字にする必要があります。

于 2013-05-09T16:00:28.570 に答える