GDBの共通コマンド

GDB は、C/C++ プログラムのデバッグに使用できるデバッガーです。この C/C++ は、GDB によって呼び出される前に、シンボル テーブルを生成する必要があります。たとえば、C++:

g++ -g source.cpp

GDB共通コマンド

最初に、デバッグ シンボルを含む ELF ファイル (exe で修正可能でリンク可能な形式) を生成する必要があります。簡単に言えば、これはデバッグ シンボルを含む実行可能ファイルです。-gコンパイルするパラメータを追加します。

こんにちは.cpp:
写真の説明を追加してください

──(kali㉿kali)-[~/dev/Bear]
└─$ g++ -o world -g hello.cpp
──(kali㉿kali)-[~/dev/Bear]
└─$ ls
world hello.cpp

gdb デバッガーを起動します

──(kali㉿kali)-[~/dev/Bear]
└─$ gdb

デバッグを容易にするために、調整を開始する前に実行しますlayout next

このコマンドは、プログラム内の現在の位置周辺のソース コードを表示します。このビューは、特に慣れていないソース コードを操作する場合に、gdb を初めて使用する場合に役立ちます。
GDBを起動したら、初めて入力します

(gdb) layout next

写真の説明を追加してください
写真の説明を追加してください
再度実行すると layout next、アセンブリ言語のプログラムが表示されます。
写真の説明を追加してください
layout prevこのコマンドは、以前のモードに戻ることです。

デバッグ用にワールド ファイルを使用し、ファイル file を使用して、デバッグ用にワールド ファイルのシンボルを読み込みます。

file を使用して、デバッグに使用するファイルのシンボルを読み込みます

(gdb) file world
Reading symbols from world...

ブレークポイントを設定

特定の行番号でのブレークポイント:

(gdb) break 2
(gdb) break 7

関数にブレークポイントを設定することもできます:

(gdb) break main

写真の説明を追加してください

世界プログラムを実行する

(gdb) run world

または、いくつかのパラメーターを world プログラムに渡します。

(gdb) run world "ling ling"

写真の説明を追加してください

次のコマンドを使用して、次の行まで実行します

(gdb) next

関数呼び出しに遭遇し、入って見たい場合は、ステップを使用できます

(gdb) step

写真の説明を追加してください

関数に入った後、読み続けたくなく、関数が呼び出された場所に戻りたい場合は、finish を使用できます。

(gdb) finish

呼び出し元に戻りたい場合は、return コマンドを使用できます。

写真の説明を追加してください

print を使用して一部の変数の値を確認する

写真の説明を追加してください

一部の変数の値を確認するために print を使用することに加えて、display を使用することもできます。これは、各命令の後に情報を再出力するという点で print とは異なります。

ここに画像の説明を挿入

clear を使用してブレークポイントをクリアします

たとえば、7 行目のブレークポイントをクリアします。

(gdb) clear 7

写真の説明を追加してください
または、メソッド名のブレークポイントを数えます:

(gdb) clear main

写真の説明を追加してください

bt は、関数呼び出しスタック、つまりこの行に到達してから実行されたすべての関数、つまり関数呼び出しスタックを表示します。

(gdb) bt

写真の説明を追加してください

continue コマンドは、ブレークポイントが停止した場所から次のブレークポイントまで続行するために使用されます。

(gdb) continue

frame [番号] は、コール スタック内の選択されたフレームに移動します。

list コマンドを使用して、現在のソース ファイルの現在の行の周りの領域を出力します。現在の行と呼び出された関数スタックを表示写真の説明を追加してください

quit または exit は両方とも gdb デバッガーです。

上記のコマンドは一般的に使用されます。より高度な使用法については、help コマンドを使用してより有用な情報を見つけることができます。

(gdb) help

写真の説明を追加してください
help コマンドを使用して、より高度なアプリケーションを学習できます。ここでは展開しません。gdb はまだ非常に簡単に習得できます。

おすすめ

転載: blog.csdn.net/weixin_40763897/article/details/128749102