1 #ifndef COMMON__TEST_ASSERT_IMPL__H
2 #define COMMON__TEST_ASSERT_IMPL__H
37 #ifndef TEST_ASSERT__H
38 # error "Must not use this header alone, but from a proper wrapper."
41 #if defined(NCBI_OS_MSWIN)
42 # ifndef NCBI_MSWIN_NO_POPUP
53 # ifndef NCBI_MSWIN_NO_POPUP
68 wchar_t dumpname[64],
tmp[64];
69 wcscat( wcscat( wcscpy(dumpname, L
"core."), _ltow(GetCurrentProcessId(),
tmp, 10)), L
".dmp");
71 char dumpname[64],
tmp[64];
72 strcat(
strcat( strcpy(dumpname,
"core."), _ltoa(GetCurrentProcessId(),
tmp, 10)),
".dmp");
74 HANDLE hf = CreateFile(dumpname,
75 GENERIC_WRITE, 0,
NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,
NULL);
78 MINIDUMP_EXCEPTION_INFORMATION ei;
79 ei.ThreadId = GetCurrentThreadId();
80 ei.ExceptionPointers = ep;
81 ei.ClientPointers =
FALSE;
83 GetCurrentProcess(), GetCurrentProcessId(),
84 hf, MiniDumpNormal, &ei,
NULL,
NULL);
86 fprintf(stderr,
"Unhandled exception: %lx at %p", ep->ExceptionRecord->ExceptionCode, ep->ExceptionRecord->ExceptionAddress);
90 return EXCEPTION_EXECUTE_HANDLER;
95 #ifndef NCBI_MSWIN_NO_POPUP_EVER
97 const char*
value = getenv(
"DIAG_SILENT_ABORT");
101 SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX |
102 SEM_NOOPENFILEERRORBOX);
105 _set_error_mode(_OUT_TO_STDERR);
108 _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
109 _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
110 _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
111 _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
112 _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);
113 _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE);
117 #ifndef NCBI_MSWIN_NO_POPUP_EVER
126 # if _MSC_VER >= 1400
127 # pragma section(".CRT$XIV", read)
129 # pragma data_seg(".CRT$XIV")
138 #ifndef NCBI_MSWIN_NO_POPUP
162 #ifdef NCBI_OS_DARWIN
163 # ifdef FIXINC_BROKEN_ASSERT_STDLIB_CHECK
164 # undef FIXINC_BROKEN_ASSERT_STDLIB_CHECK
173 #define _ASSERT assert
178 #define _TROUBLE do { assert(0); abort(); } while (0)
187 # define _DEBUG_ARG(x) x
#define INVALID_HANDLE_VALUE
A value for an invalid file handle.
#define HANDLE
An abstraction for a file handle.
unsigned int
A callback function used to compare two keys in a database.
static int _SuppressDiagPopupMessages(void)
static LONG CALLBACK _SEH_Handler(EXCEPTION_POINTERS *ep)
static int(* _SDPM)(void)