我想使用MiniDumpWriteDump()API轉儲從另一個進程A.崩潰的進程B,我這樣做是因爲MSDN是這麼說的:有沒有辦法在另一個引發異常的進程中知道線程ID?
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個參數:
線程ID 拋出異常的線程的標識符。
ExceptionPointers 一個指向EXCEPTION_POINTERS結構指明該異常的計算機獨立描述,並在異常時的處理器的上下文。
如何在進程A中運行時如何獲得進程B中的錯誤線程標識和異常指針?
謝謝。
我正面臨類似的問題。我無法將PEXCEPTION_POINTERS ExceptionPointers傳遞給其他進程。 (如果我使用FileMapping概念,我最終得到空指針)。請詳細說明你如何解決這個問題。 – 2013-04-23 10:30:54