+++ /dev/null
-#include "win32/seh.h"
-
-void SEHdump(_EXCEPTION_POINTERS *lpExcept)
-{
- // crash dump
- MINIDUMP_EXCEPTION_INFORMATION minidumpInfo;
- HANDLE hFile;
- BOOL dump = FALSE;
-
- minidumpInfo.ThreadId = GetCurrentThreadId();
- minidumpInfo.ExceptionPointers = lpExcept;
- minidumpInfo.ClientPointers = FALSE;
-
- hFile = CreateFile(".\\dump.dmp", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
- if ((hFile != NULL) && (hFile != INVALID_HANDLE_VALUE))
- {
- dump = MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hFile,
- (MINIDUMP_TYPE)
- (MiniDumpWithIndirectlyReferencedMemory
- |MiniDumpWithPrivateReadWriteMemory
- |MiniDumpWithThreadInfo
- |MiniDumpWithUnloadedModules),
- &minidumpInfo, NULL, NULL);
- CloseHandle(hFile);
- }
-
-
- // dump peercast's log
- fs.openWriteReplace(".\\dump.html");
- sys->logBuf->dumpHTML(fs);
- fs.close();
- if (dump)
- {
- MessageBox(NULL, "\88ê\94Ê\95Û\8cì\88á\94½\82Ì\88×\81A\83v\83\8d\83O\83\89\83\80\82Í\8b\90§\8fI\97¹\82³\82ê\82Ü\82·\81B\n"
- "\96â\91è\89ð\8c\88\82Ì\82½\82ß\83_\83\93\83v\83f\81[\83^(dump.html, dump.dmp)\82ð\92ñ\8b\9f\82µ\82Ä\82\82¾\82³\82¢\81B", "SEH",
- MB_OK|MB_ICONWARNING);
- } else
- {
- MessageBox(NULL, "\88ê\94Ê\95Û\8cì\88á\94½\82Ì\88×\81A\83v\83\8d\83O\83\89\83\80\82Í\8b\90§\8fI\97¹\82³\82ê\82Ü\82·\81B\n"
- "\96â\91è\89ð\8c\88\82Ì\82½\82ß\82É\83_\83\93\83v\83f\81[\83^(dump.html)\82ð\92ñ\8b\9f\82µ\82Ä\82\82¾\82³\82¢\81B", "SEH",
- MB_OK|MB_ICONWARNING);
- }
-
- ::exit(lpExcept->ExceptionRecord->ExceptionCode);
-}