c++ - Stack information disappears when I add exception information to my minidump -
i'm writing out of process minidump child process. here relevant code snippet:
context thread_context{}; thread_context.contextflags = context_full; assert(getthreadcontext(child_thread_handle, &thread_context)); exception_pointers exception_ptrs; exception_ptrs.exceptionrecord = &exception_info.exceptionrecord; exception_ptrs.contextrecord = &thread_context; minidump_exception_information minidump_exception_info; minidump_exception_info.threadid = evt.dwthreadid; minidump_exception_info.exceptionpointers = &exception_ptrs; minidump_exception_info.clientpointers = false; auto success = minidumpwritedump(child_handle, evt.dwprocessid, file_handle, minidump_flags, &minidump_exception_info, nullptr, nullptr);
this gives me exception information, , call stack every thread except thread raised exception. if change &minidump_exception_info
nullptr, call stack no exception information. there way both exception information , call stack?
calling getthreadcontext context_full not capture registers needed stack trace, , existence of context prevents debugger using other information call stack. using context_all instead gets enough information recreate call stack.
https://msdn.microsoft.com/en-us/magazine/hh580738.aspx helpful reference in figuring out.
Comments
Post a Comment