我正在尝试使用 MiniDumpWriteDump() API 从另一个进程 A 转储崩溃的进程 B。我这样做是因为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 和异常指针?
谢谢。