MiniDumpWriteDump()APIを使用して、クラッシュしたプロセスBを別のプロセスAからダンプしようとしています。MSDNが次のように言っているため、これを実行しています。
MiniDumpWriteDumpは、ダンプされるターゲットプロセス内からではなく、可能であれば別のプロセスから呼び出す必要があります。
MiniDumpWriteDump()は次のように定義されます。
BOOL WINAPI MiniDumpWriteDump(
__in HANDLE hProcess,
__in DWORD ProcessId,
__in HANDLE hFile,
__in MINIDUMP_TYPE DumpType,
__in PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
__in PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
__in PMINIDUMP_CALLBACK_INFORMATION CallbackParam
);
特に、ExceptionParamのタイプはPMINIDUMP_EXCEPTION_INFORMATIONであり、次のように定義されています。
typedef struct _MINIDUMP_EXCEPTION_INFORMATION {
DWORD ThreadId;
PEXCEPTION_POINTERS ExceptionPointers;
BOOL ClientPointers;
} MINIDUMP_EXCEPTION_INFORMATION, *PMINIDUMP_EXCEPTION_INFORMATION;
今、私は次の2つのパラメータをどのように準備するのか疑問に思っています。
ThreadId 例外をスローするスレッドの識別子。
ExceptionPointers コンピューターに依存しない例外の説明と例外時のプロセッサーコンテキストを指定するEXCEPTION_POINTERS構造体へのポインター。
プロセスAで実行しているときに、プロセスBで障害のあるスレッドIDと例外ポインターを取得するにはどうすればよいですか?
ありがとう。