2009年8月20日木曜日

プロセス ダンプ(ユーザー ダンプ)の作成

プロセスのダンプを作成するには,Debug Help Libraryの力を借ります. system32には古いバージョンが入っているかと思いますが, 最新のdbghelp.dllは,Debugging Tools for Windowsに含まれています.(2009/09/08現在再頒布可能です)

ヘッダファイルstdafx.hに以下のコードを追加します.

#include <dbghelp.h>
#pragma comment( lib , "dbghelp.lib" )

MiniDumpWriteDump関数を使います. 第3引数のMINIDUMP_TYPEの例を示します.(参考までに)

フラグ(MINIDUMP_TYPEdbghelp.dll
MiniDumpWithDataSegs | MiniDumpWithProcessThreadData | MiniDumpWithHandleData | MiniDumpWithPrivateReadWriteMemory | MiniDumpWithUnloadedModules | MiniDumpWithFullMemoryInfoバージョン6.1以降
MiniDumpWithDataSegs | MiniDumpWithUnloadedModules | MiniDumpWithProcessThreadDataバージョン5.1未実装

また,プロセスの列挙やプロセス名の取得を行うには,Process Status API(PSAPI)を使用することができます. PSAPIを使用するには,ヘッダファイルstdafx.hに以下のコードを追加します.

#include <lpsapi.h>
#pragma comment( lib , "psapi.lib" )

0 件のコメント:

コメントを投稿