コアダンプファイルを分析している間私がチェックする必要があることすべては何ですか。ゼロから教えてください。
コアを生成したバイナリと同じバイナリ(デバッグ用シンボルを含む)が必要です。その後、gdb path/to/the/binary path/to/the/core
を実行してデバッグできます。
起動したら、クラッシュ時からスタックトレースを取得するためにbt
(バックトレース用)を使用できます。バックトレースでは、各関数呼び出しに番号が付けられています。 frame number
を使うことができます(置き換え 数 特定のスタックフレームを選択するには、スタックトレース内の対応する番号を使用します。その関数の周りのコードを見るためにlist
を、そしてローカル変数を見るためにinfo locals
を使うことができます。その値を見るためにprint name_of_variable
( "name_of_variable"を変数名に置き換える)を使うこともできます。
GDBでhelp
と入力すると、追加のコマンドが表示されるプロンプトが表示されます。
いくつかの一般的な助け:
gdb デバッグファイルなしでGDBを起動
gdbプログラム デバッグプログラムの開始
gdbプログラムコア programによって生成された/ debug coredumpコア
gdb --help コマンドラインオプションの説明
1 - まず最初に、コアファイルが生成されるディレクトリを見つけます。
2-次に、ディレクトリ内でls -ltr
コマンドを使用して、最新のコアファイルを見つけます。
3- corefileをロードする
コアファイルのgdbバイナリパス
これでコアファイルがロードされます。
4-その後、あなたはbt
コマンドを使って情報を得ることができます。 詳細なバックトレースについてはbt full
を使用してください。
5-変数を印刷するにはprint variable-name
またはp variable-name
を使います
6- GDBに関するヘルプを表示するには、help
オプションを使用するか、apropos search-topic
を使用してください。
7 - 希望のフレーム番号に移動するには、frame frame-number
を使用します。
8- up n
コマンドとdown n
コマンドを使用して、それぞれフレームnフレームを上に選択するとフレームnフレームを下に選択します。
9- GDBを停止するには、quit
またはq
を使用します。