15 #ifdef DtUSE_UTILITIES_NAMESPACE
16 #define DtMiniDumper Dt ## MAKRti ## MiniDumper
22 # define DECLSPEC_DEPRECATED
24 # include "M:\\dev7\\vs\\devtools\\common\\win32sdk\\include\\dbghelp.h"
33 typedef BOOL (WINAPI* MINIDUMPWRITEDUMP)( HANDLE hProcess, DWORD dwPid, HANDLE hFile,
34 MINIDUMP_TYPE DumpType, CONST PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
35 CONST PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
36 CONST PMINIDUMP_CALLBACK_INFORMATION CallbackParam );
47 DtMiniDumper(
const char* szAppName,
bool promptUser =
true );
53 static LONG WINAPI TopLevelFilter(
struct _EXCEPTION_POINTERS* pExceptionInfo );
57 static char* m_szAppName;
62 #define DtINIT_MINIDUMPER( execName ) DtMiniDumper miniDump( execName );
63 #define DtINIT_MINIDUMPER_NO_PROMPT( execName ) DtMiniDumper miniDump( execName, false );
65 #define DtSILENTLY_CRASH( unused ) \
67 ::SetUnhandledExceptionFilter(0); \
68 SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX); \
87 static void printCallStack(
int sig, siginfo_t* info,
void* secret );
93 static void initializeAddressSpace();
96 static void objFileAndNameFromStack(
char* stackEntry,
97 std::string& objFile, std::string& objFileName );
100 static std::string lookupFileInfo(
const std::string& objFile,
101 unsigned long offset );
121 #define DtINIT_MINIDUMPER( unused ) \
123 struct sigaction sa; \
124 sa.sa_sigaction = (SigActionCb) DtMiniDumper::printCallStack; \
125 sa.sa_flags = SA_SIGINFO; \
126 sigemptyset( &sa.sa_mask ); \
127 sigaction( SIGSEGV, &sa, 0 ); \
131 #define DtINIT_MINIDUMPER_NO_PROMPT( unused ) \
133 struct sigaction sa; \
134 sa.sa_sigaction = (SigActionCb) DtMiniDumper::printCallStack; \
135 sa.sa_flags = SA_SIGINFO; \
136 sigemptyset( &sa.sa_mask ); \
137 sigaction( SIGSEGV, &sa, 0 ); \
141 #define DtSILENTLY_CRASH( unused ) \