private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { var dumpFileName = DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".dmp"; using (var file = new FileStream(dumpFileName, FileMode.Create)) { var info = new MinidumpExceptionInformation { ThreadId = GetCurrentThreadId(), ExceptionPointers = Marshal.GetExceptionPointers(), ClientPointers = false }; MiniDumpWriteDump( GetCurrentProcess(), GetCurrentProcessId(), file.SafeFileHandle, MinidumpType.WithFullMemory, ref info, IntPtr.Zero, IntPtr.Zero); } Process.GetCurrentProcess().Kill(); }
internal static extern Boolean MiniDumpWriteDump( IntPtr hProcess, UInt32 ProcessId, SafeFileHandle hFile, MinidumpType DumpType, ref MinidumpExceptionInformation ExceptionParam, IntPtr UserStreamParam, IntPtr CallbackParam);