2016-08-24 2 views
1

コアダンプを解析する必要があります。 私のプロセスのほとんどのデータはマップされたファイルに含まれています。 私はそのデータにアクセスしたいときに、gdbはファイルをマップしていないのでそのデータにアクセスできないと言います。 gdbは、データにアクセスするためにそのファイルをマップする方法を知っていますか。コアダンプ解析中にファイルをマップする方法

+0

詳細を教えてください。通常、コアファイルは* nix OSのプロセスの全メモリ領域を占有します。おそらくあなたは小さな例を作ることができますか? –

+0

こんにちは、私のケースでは、コアファイルは完全なメモリ空間を持っていません。マップされたファイルはプロセスの仮想メモリに属します。コアファイルにはこれらのセグメントが含まれていません。 –

答えて

0

データにアクセスするためにgdbマップを作成する方法。

GDBにはこれを行うためのコマンドはありません。

データファイルをオブジェクトファイルにラップし、add-symbol-file foo.o <suitable-load-address>を使用します。これを行うにはobjcopy --add-sectionを使用できます。 Example

Linuxでは、コアダンプに読み取り専用マッピングを含めるように構成することもできます(通常、このようなマッピングは除外されてcoreを小さくします)。これにより、特別な手順が不要になります。 Controlling which mappings are written to the core dumpのセクションman 5 coreを参照してください。

+0

私はcoredump_filterソリューションを試しましたが、うまくいきます。私は誰かが分析時にマップされたファイルをロードするソリューションを持っていることを願っています。たくさんありがとうございました –

+0

@JeanChristophe私は*あなた*解決策をくれました。 –

+0

はい私はそれを試します –

関連する問題