UnhandledExceptionFilter फ़ंक्शन winapi में कॉल स्टैक कैसे प्राप्त करें - winapi, कॉल स्टैक, अपवादक

मैं प्रोग्राम संदर्भ के कॉल स्टैक को कैसे प्राप्त कर सकता हूं जो त्रुटि का कारण बनता है (अनचाहे अपवाद कॉल स्टैक नहीं)

उदाहरण के लिए:

LONG WINAPI myUnhandledException(PEXCEPTION_POINTERS pExceptionPtrs)
{
//Get the eip when the crash occur
DWORD eip = pExceptionPtrs->ContextRecord->Eip;
//how  to get crash call stack??
//0x123
//0x896
//Eip
}

int main()
{   //Set the unhandledexceptionfilter
SetUnhandledExceptionFilter(myUnhandledException);
}

उत्तर:

जवाब के लिए 0 № 1
  1. StackWalk64
  2. कम स्तर में- RtlCaptureStackBackTraceसमारोह अपवाद समय बैकअप में ebp को सहेजने की आवश्यकता है सभी स्टैक परिवर्तन संदर्भ समय कॉल पर वापस ebp बदलें RtlCaptureStackBackTrace वैश्विक परिणाम में वैश्विक बचत को वर्तमान समय में पुनर्प्राप्त करें

संबंधित सवाल
सबसे लोकप्रिय