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:查看函数调用栈--通常用于检测程序运行时的崩溃位置
注:上記の操作のほとんどは、イニシャルを省略して実装することもできますが、個々のコマンドのイニシャルにはあいまいさがあり、省略できない場合がありますので、実際の操作では注意してください。