私はコアダンプ解析用のツールを書いています。印刷したいものの1つは、プロセスがダンプ時に使用していた仮想メモリの量の見積もりです。これらのコアダンプは、クラッシュによるものか、gcoreを使用して手作業で取得することができます(サイジングなど)。基本的には、PS VSZ列に相当するものを印刷したいと思います。Linux上でcore dumpとgdbを使用して仮想メモリ(VSZ)を使用すると、どのように近似されますか?
私はreadelfとgdbを調べ、後者に焦点を当てました。例えば、私はちょうどハング簡単なプログラムを持っていると私はPSで参照してください。
$ ps auxwww | grep a.out
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 16644 0.0 0.0 4108 472 pts/5 S+ 13:51 0:00 ./a.out
私は、gcoreをを使用してコアを取りれることが4206592バイトVSZを使用しての視点。次に、info target
の出力を解析してアドレス範囲を合計すると、1,814,528バイトを取得する簡単なスクリプトを作成しました。私もinfo proc mappings
を試しましたが、プロセスが動作している場合にのみ動作するようです。
アイデア?私の場合は
私はちょうど 'メンテナンス情報セクション'を試してみましたが、やや大きめですが、同様の数の1,817,528バイトがあります。 – user379184