web-dev-qa-db-ja.com

コアダンプファイル解析

コアダンプファイルを分析している間私がチェックする必要があることすべては何ですか。ゼロから教えてください。

202
Dew

コアを生成したバイナリと同じバイナリ(デバッグ用シンボルを含む)が必要です。その後、gdb path/to/the/binary path/to/the/coreを実行してデバッグできます。

起動したら、クラッシュ時からスタックトレースを取得するためにbt(バックトレース用)を使用できます。バックトレースでは、各関数呼び出しに番号が付けられています。 frame numberを使うことができます(置き換え  特定のスタックフレームを選択するには、スタックトレース内の対応する番号を使用します。その関数の周りのコードを見るためにlistを、そしてローカル変数を見るためにinfo localsを使うことができます。その値を見るためにprint name_of_variable( "name_of_variable"を変数名に置き換える)を使うこともできます。

GDBでhelpと入力すると、追加のコマンドが表示されるプロンプトが表示されます。

296

GDBを使用してコアダンプをデバッグする手順

いくつかの一般的な助け:

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を使用します。

80
Mayank