मैं MiniDumpWriteDump() एपीआई का उपयोग करने के लिए एक प्रक्रिया ए से एक दुर्घटनाग्रस्त प्रक्रिया बी डंप करने के लिए क्योंकि MSDN इतना कहा कि मैं यह कर रहा हूं कोशिश कर रहा हूँ:क्या किसी अन्य प्रक्रिया में थ्रेड आईडी को जानने का कोई तरीका है जो अपवाद फेंकता है?
MiniDumpWriteDump बुलाया जाना चाहिए एक अलग प्रक्रिया से सभी पर अगर संभव है, लक्ष्य प्रक्रिया को छोड़कर।
MiniDumpWriteDump() इस रूप में परिभाषित किया गया है:
typedef struct _MINIDUMP_EXCEPTION_INFORMATION {
DWORD ThreadId;
PEXCEPTION_POINTERS ExceptionPointers;
BOOL ClientPointers;
} MINIDUMP_EXCEPTION_INFORMATION, *PMINIDUMP_EXCEPTION_INFORMATION;
अब मैं सोच रहा हूँ:
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 है, जो नीचे के रूप में परिभाषित किया गया है प्रकार का है निम्नलिखित 2 पैरामीटर कैसे तैयार करें:
थ्रेडआईड अपवाद फेंकने वाले धागे की पहचानकर्ता।
ExceptionPointers एक EXCEPTION_POINTERS संरचना अपवाद के एक कंप्यूटर-स्वतंत्र विवरण और अपवाद के समय प्रोसेसर संदर्भ निर्दिष्ट करने के लिए एक सूचक।
प्रक्रिया ए में चलते समय प्रक्रिया बी में दोषपूर्ण थ्रेड आईडी और अपवाद पॉइंटर्स कैसे प्राप्त कर सकते हैं?
धन्यवाद।
मुझे एक समान समस्या का सामना करना पड़ रहा है। मैं अन्य प्रक्रियाओं में PEXCEPTION_POINTERS अपवादपॉइंटर्स को पास करने में सक्षम नहीं हूं। (अगर मैं फाइलमैपिंग अवधारणा का उपयोग करता हूं तो मैं शून्य सूचक प्राप्त कर रहा हूं)। कृपया इस पर विस्तृत करें कि आप इस पर कैसे बस गए हैं। –