[Linux] gdbデバッガー-

gdb:デバッガー

デバッガーの機能:

通常、プログラム操作エラーのトラブルシューティングを目的として、プログラム操作エラーをデバッグおよび監視します。

プログラムエラーの分類:

コンパイルエラー、リンクエラー、ランタイムエラー(ランタイムロジックエラーおよびランタイムプログラムのクラッシュ)

デバッグの前提条件

プログラムはプログラムのデバッグバージョンである必要があります。gcc/ g ++はデフォルトでプログラムのリリースバージョンを生成します。デバッグバージョンを生成する場合は、-gオプションを使用します(例:gcc -g test.c -o)。 test.exe

実行可能プログラムの分類:

debug-debug version:コードを最適化せず、デバッグプログラム情報を追加します。

リリース-リリースバージョン:デバッグ情報が含まれておらず、コードが最適化されています

gdbの一般的に使用されるコマンド

gdb ./test.exeは、test.exeファイルをデバッグすることを意味します

プロセス制御

RUN:直接プログラムを実行します

開始:ステッピングを開始

リスト:デバッグ行の近くのコード例を表示します:リストtest.c:12

次へ:ステップオーバー-エンカウンター関数の直接実行を終了しました

ステップ:ステップイン-遭遇する内部関数に、デバッグ関数を続行することです

まで:例は指定された場所に直接実行されます:test.cまで:16行16に直接実行されます

続行:現在の場所から実行を続行します

BREAK:例:break point:break test.c:14ファイルtest.cの14行目にブレークポイントを追加します

ブレーク情報:ブレークポイント情報を表示します

削除:ブレークポイントの削除例:削除ID(ヒールブレークポイントID、使用可能な情報ブレークビュー)

ウォッチ:変数監視ブレーク-変更が発生したら、変数のデバッグを停止し、その後に変数名を続けます

quit:gdbデバッグを終了します

メモリ制御

 print:查看嚯设置变量内容; 例:print var_name   print var=val

 backtrac:查看函数调用栈--通常用于检测程序运行时的崩溃位置

注:上記の操作のほとんどは、イニシャルを省略して実装することもできますが、個々のコマンドのイニシャルにはあいまいさがあり、省略できない場合がありますので、実際の操作では注意してください。

おすすめ

転載: blog.csdn.net/weixin_43962381/article/details/113518180