#include <DbgHelp.h>
#pragma comment (lib, "Dbghelp.lib")
LONG WINAPI toplevelexceptionfilter (struct _exception_pointers *pexceptioninfo)
{
cout << "Enter toplevelexceptionfilter Function" << Endl;
TCHAR Szpath[max_path] = {0};
TCHAR Szfilename[max_path] = {0};
tchar* szversion = "v1.0";
TCHAR dwbuffersize = MAX_PATH;
SYSTEMTIME Stlocaltime;
Getlocaltime (&stlocaltime);
CreateDirectory (szFileName, NULL);
stringcchprintf (szFileName, MAX_PATH, "%s-%04d%02d%02d-%02d%02d%02d-%ld-%ld.dmp",
Szversion, Stlocaltime.wyear, Stlocaltime.wmonth, Stlocaltime.wday,
Stlocaltime.whour, Stlocaltime.wminute, Stlocaltime.wsecond,
GetCurrentProcessId (), GetCurrentThreadID ());
HANDLE hfile = CreateFile (szFileName, generic_write, 0, NULL, create_always, file_attribute_normal, NULL);
Minidump_exception_information Stexceptionparam;
Stexceptionparam.threadid = GetCurrentThreadID ();
Stexceptionparam.exceptionpointers = Pexceptioninfo;
Stexceptionparam.clientpointers = FALSE;
MiniDumpWriteDump (GetCurrentProcess (), GetCurrentProcessId (), hfile, Minidumpwithfullmemory, &stExceptionParam , NULL, NULL);
CloseHandle (hfile);
GetChar ();
return exception_execute_handler;
}
//-----------------------------------------------------------------------------------------
Call this function at the very beginning of the program
SetUnhandledExceptionFilter (Toplevelexceptionfilter);
C + + software add dump debug Print Log