summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/inspircd.cpp4
-rw-r--r--win/inspircd_win32wrapper.cpp64
-rw-r--r--win/inspircd_win32wrapper.h7
3 files changed, 2 insertions, 73 deletions
diff --git a/src/inspircd.cpp b/src/inspircd.cpp
index 3149d74ea..34d15e4e3 100644
--- a/src/inspircd.cpp
+++ b/src/inspircd.cpp
@@ -702,9 +702,7 @@ int ircd(int argc, char ** argv)
int main(int argc, char ** argv)
{
- __try {
- ircd(argc,argv);
- } __except(__exceptionHandler(GetExceptionInformation())) {}
+ ircd(argc,argv);
return 0;
}
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;
-}
diff --git a/win/inspircd_win32wrapper.h b/win/inspircd_win32wrapper.h
index a6d023c56..6a3b7a36b 100644
--- a/win/inspircd_win32wrapper.h
+++ b/win/inspircd_win32wrapper.h
@@ -21,7 +21,7 @@
/* Define the WINDOWS macro. This means we're building on windows to the rest of the server.
I think this is more reasonable than using WIN32, especially if we're gonna be doing 64-bit compiles */
#define WINDOWS 1
-#define ENABLE_CRASHDUMPS 1
+#define ENABLE_CRASHDUMPS 0
/* Make builds smaller, leaner and faster */
#define VC_EXTRALEAN
@@ -204,10 +204,5 @@ void ChangeWindowsSpecificPointers(InspIRCd* Instance);
bool ValidateWindowsDnsServer(ServerConfig* conf, const char* tag, const char* value, ValueItem &data);
-#ifdef ENABLE_CRASHDUMPS
-typedef struct _EXCEPTION_POINTERS EXCEPTION_POINTERS, *PEXCEPTION_POINTERS;
-int __cdecl __exceptionHandler(PEXCEPTION_POINTERS pExceptPtrs);
-#endif
-
#endif