windows process のアドレスマップ

Linux の pmap の様な情報が欲しいんだけど、なかなか面倒そう。7 の 64-bit 情の 32-bit process, 以前通り2G程度しかメモリが使えないようだけど、その内訳を見たい。仮想サイズでトータルはほぼわかると言えばわかるのだが。

Psapi でプロセスに関する基本的な情報は得られたが、メモリーマップのようなものを得る方法はなさそう。モジュールを enumerate する API も期待せずに試したが、やはりexe/dll のモジュール情報のみ。

windows list memory segments でググる

http://stackoverflow.com/questions/412832/windows-process-memory-viewer

Debugger でやれとか、Process Viewer とか Process Explore。

Process Explore は MS 製だけど、どうやらメモリマップの様な情報はなさそう。

PrcView は、最初の表示に期待するプロセスが見えなかったので、すべてのプロセスを表示させ、Memory のメニューアイテムを押すとそれらしきものが表示された。

http://www.teamcti.com/pview/prcview.htm

しかし、表示はモーダルダイアログ中で、表示内容をコピーしたり、ダンプしたりはできない。でもこの表示どこかで見たような... たぶん cdb で見たんだな。

やはりデバッガを使うか DbgEng interface でプログラムくむしかないってことかな。面倒くさい。