0

如何获取导致错误的程序上下文的`callstack(不是未处理的异常调用堆栈)

例如:

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);
}
4

1 回答 1

0
  1. StackWalk64
  2. 在低级别 - RtlCaptureStackBackTrace 函数需要保存 ebp 在异常时间备份所有堆栈更改 ebp 回到上下文时间调用 RtlCaptureStackBackTrace 保存结果全局恢复堆栈到当前时间
于 2018-03-12T19:14:53.047 回答