summaryrefslogtreecommitdiff
path: root/win/inspircd_win32wrapper.cpp
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-10-14 20:13:54 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-10-14 20:13:54 +0000
commite4aa8c95131f8b7bb3b6ff5460809ab3a6b7f588 (patch)
tree475ad5d950f5d198aaa9d1badc250f75c5d1b121 /win/inspircd_win32wrapper.cpp
parent4d908f4bc04e74f9fd5f1deb845e56da4db5bc6c (diff)
Remove crashdump stuff
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8192 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'win/inspircd_win32wrapper.cpp')
-rw-r--r--win/inspircd_win32wrapper.cpp64
1 files changed, 0 insertions, 64 deletions
diff --git a/win/inspircd_win32wrapper.cpp b/win/inspircd_win32wrapper.cpp
index a25544aab..e6f25df18 100644
--- a/win/inspircd_win32wrapper.cpp
+++ b/win/inspircd_win32wrapper.cpp
@@ -654,67 +654,3 @@ int gettimeofday(struct timeval * tv, void * tz)
tv->tv_usec = (mstime - (tv->tv_sec * 1000)) * 1000;
return 0;
}
-
-int __exceptionHandler(PEXCEPTION_POINTERS pExceptPtrs)
-{
- SYSTEMTIME _time;
- HANDLE hDump;
- char mod[MAX_PATH*2];
- char * pMod = mod;
- char dump_filename[MAX_PATH];
- MINIDUMP_EXCEPTION_INFORMATION dumpInfo;
- DWORD code;
-
- if(pExceptPtrs == NULL) {
- __try {
- RaiseException(EXCEPTION_BREAKPOINT, 0, 0, NULL);
- } __except(__exceptionHandler(GetExceptionInformation()), EXCEPTION_CONTINUE_EXECUTION) {}
- }
-
- printf("Exception caught at 0x%.8X! Attempting to write crash dump file.\n", (unsigned long)pExceptPtrs->ExceptionRecord->ExceptionAddress);
-
- if(GetModuleFileName(0, mod, MAX_PATH*2) > 0)
- {
- if( (pMod = strrchr(mod, '\\')) != NULL )
- ++pMod;
- else
- strcpy(mod, "unk");
- }
- else
- strcpy(mod, "unk");
-
- GetSystemTime(&_time);
- snprintf(dump_filename, MAX_PATH, "dump-%s-%u-%u-%u-%u-%u-%u.dmp",
- pMod, _time.wYear, _time.wMonth, _time.wDay, _time.wHour, _time.wMinute, _time.wSecond);
-
- hDump = CreateFile(dump_filename, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_WRITE_THROUGH, 0);
- if(hDump != INVALID_HANDLE_VALUE)
- {
- dumpInfo.ClientPointers = FALSE;
- dumpInfo.ExceptionPointers = pExceptPtrs;
- dumpInfo.ThreadId = GetCurrentThreadId();
-
- /* let's write a full memory dump. insp shouldn't be using much memory anyway, and it will help a lot with debugging. */
- MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDump, MiniDumpWithFullMemory, &dumpInfo, NULL, NULL);
- FlushFileBuffers(hDump);
- CloseHandle(hDump);
- }
-
- /* check for a debugger */
- __asm {
- pushad
- pushfd
- mov eax, fs:[18h]
- mov eax, dword ptr [eax+30h]
- mov ebx, dword ptr [eax]
- mov code, ebx
- popfd
- popad
- }
-
- /* break into debugger if we have one */
- if(code & 0x10000)
- return EXCEPTION_CONTINUE_SEARCH;
- else /* otherwise exit abnormally */
- return EXCEPTION_CONTINUE_EXECUTION;
-}