dbghelp

Capturing R6025 pure virtual call

£可爱£侵袭症+ 提交于 2019-11-27 11:43:25
问题 I currently capture MiniDumps of unhandled exceptions using SetUnhandledExceptionFilter however at times I am getting "R6025: pure virtual function". I understand how a pure virtual function call happens I am just wondering if it is possible to capture them so I can create a MiniDump at that point. 回答1: If you want to catch all crashes you have to do more than just: SetUnhandledExceptionFilter I would also set the abort handler, the purecall handler, unexpected, terminate, and invalid

Why don't Minidumps give good call stacks?

廉价感情. 提交于 2019-11-27 10:35:07
问题 I've used minidumps on many game projects over the years and they seem to have about a 50% chance of having a valid call stack. What can I do to make them have better call stacks? I've tried putting the latest dbghelp.dll in the exe directory. That seems to help some. Is Visual Studio 2008 or 2010 any better? (I'm still on VS 2005). The code I use looks like this sample. 回答1: One thing you can do to improve the accuracy of call stacks found in dumps is to use a debugger other than Visual

How can you use CaptureStackBackTrace to capture the exception stack, not the calling stack?

折月煮酒 提交于 2019-11-26 19:46:25
问题 I marked up the following code: #include "stdafx.h" #include <process.h> #include <iostream> #include <Windows.h> #include "dbghelp.h" using namespace std; #define TRACE_MAX_STACK_FRAMES 1024 #define TRACE_MAX_FUNCTION_NAME_LENGTH 1024 int printStackTrace() { void *stack[TRACE_MAX_STACK_FRAMES]; HANDLE process = GetCurrentProcess(); SymInitialize(process, NULL, TRUE); WORD numberOfFrames = CaptureStackBackTrace(0, TRACE_MAX_STACK_FRAMES, stack, NULL); SYMBOL_INFO *symbol = (SYMBOL_INFO *