GDBデバッグNASMアセンブラコードの構文

次のようにNASMアセンブラコードのデバッグバージョンへの準備は次のとおりです。

section .data
section .text
global main
main:
  ;100001/100
 mov rdx,1
 mov rax,86A1H
 mov rbx,100
 div rbx
 mov rax,60
 syscall

一部のプログラムではなく、「メイン」の「_start」を使用しますが、私はテストにワード_startを使用する場合、常に存在します。

yを入力した後、時には直接起動プログラムを実行するが、私はを通じてのステップにしたいとステータスは、うん「メイン」の単語のように直接使用することを登録し表示します。

NASM -f ELF64 -o div.0 div.asm:次に、以下のコマンドを入力します。

                                 LD -o DIV div.o

それは単に無視し、私たちは「_startの言葉を使用していないので、それは、警告を促すメッセージが表示されます~~~~~

次に、GDBを起動するgdbのdivの入力入力開始は、プログラムを実行し始めました

上記のような問題でない場合は、我々はステップアップを開始しました。

ニッケルコマンドはプログラムによるステップにここで使用される、いくつかの注意がn個の入力コマンドブログや隣で、私はこの入力は私の個人的なマシンに一度、プログラム全体を終了することを発見しました。

情報を登録して、ステータス・レジスタをチェックするためのコマンドを入力します。

本明細書中に記載の「主な言葉を使用することができる、GDBは自動的に一時的なブレークポイントのためのプログラムを設定します。

次に、我々はプログラムをステップ実行するたびに、NI、情報レジスタコマンドを入力して、ステータス・レジスタを表示します。

公開された37元の記事 ウォン称賛10 ビュー10000 +

おすすめ

転載: blog.csdn.net/OneLinee/article/details/103916620