MiniDumpWriteDump() private method

private MiniDumpWriteDump ( IntPtr hProcess, int ProcessId, IntPtr hFile, CrashDump DumpType, IntPtr ExceptionParam, IntPtr UserStreamParam, IntPtr CallackParam ) : bool
hProcess System.IntPtr
ProcessId int
hFile System.IntPtr
DumpType CrashDump
ExceptionParam System.IntPtr
UserStreamParam System.IntPtr
CallackParam System.IntPtr
return bool
Example #1
0
        // Token: 0x06000977 RID: 2423 RVA: 0x003B60B8 File Offset: 0x003B42B8
        private static bool Write(SafeHandle fileHandle, CrashDump.Options options, CrashDump.ExceptionInfo exceptionInfo)
        {
            if (!Platform.IsWindows)
            {
                return(false);
            }
            Process expr_0E = Process.GetCurrentProcess();
            IntPtr  handle  = expr_0E.Handle;
            uint    id      = (uint)expr_0E.Id;

            CrashDump.MiniDumpExceptionInformation miniDumpExceptionInformation;
            miniDumpExceptionInformation.ThreadId          = CrashDump.GetCurrentThreadId();
            miniDumpExceptionInformation.ClientPointers    = false;
            miniDumpExceptionInformation.ExceptionPointers = IntPtr.Zero;
            if (exceptionInfo == CrashDump.ExceptionInfo.Present)
            {
                miniDumpExceptionInformation.ExceptionPointers = Marshal.GetExceptionPointers();
            }
            bool result;

            if (miniDumpExceptionInformation.ExceptionPointers == IntPtr.Zero)
            {
                result = CrashDump.MiniDumpWriteDump(handle, id, fileHandle, (uint)options, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero);
            }
            else
            {
                result = CrashDump.MiniDumpWriteDump(handle, id, fileHandle, (uint)options, ref miniDumpExceptionInformation, IntPtr.Zero, IntPtr.Zero);
            }
            return(result);
        }
Example #2
0
        private static bool Write(SafeHandle fileHandle, CrashDump.Options options,
                                  CrashDump.ExceptionInfo exceptionInfo)
        {
            if (!Platform.IsWindows)
            {
                return(false);
            }
            var currentProcess = Process.GetCurrentProcess();
            var handle         = currentProcess.Handle;
            var id             = (uint)currentProcess.Id;

            CrashDump.MiniDumpExceptionInformation expParam;
            expParam.ThreadId          = CrashDump.GetCurrentThreadId();
            expParam.ClientPointers    = false;
            expParam.ExceptionPointers = IntPtr.Zero;
            if (exceptionInfo == CrashDump.ExceptionInfo.Present)
            {
                expParam.ExceptionPointers = Marshal.GetExceptionPointers();
            }
            return(!(expParam.ExceptionPointers == IntPtr.Zero)
                ? CrashDump.MiniDumpWriteDump(handle, id, fileHandle, (uint)options, ref expParam, IntPtr.Zero,
                                              IntPtr.Zero)
                : CrashDump.MiniDumpWriteDump(handle, id, fileHandle, (uint)options, IntPtr.Zero, IntPtr.Zero,
                                              IntPtr.Zero));
        }
Example #3
0
        public static void Create(string path)
        {
            bool flag = Program.LaunchParameters.ContainsKey("-fulldump");

            using (FileStream fileStream = File.Create(path))
            {
                Process currentProcess = Process.GetCurrentProcess();
                CrashDump.MiniDumpWriteDump(currentProcess.Handle, currentProcess.Id, fileStream.SafeFileHandle.DangerousGetHandle(), flag ? CrashDump.MINIDUMP_TYPE.MiniDumpWithFullMemory : CrashDump.MINIDUMP_TYPE.MiniDumpWithIndirectlyReferencedMemory, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero);
            }
        }
Example #4
0
        public static void CreateFull()
        {
            DateTime localTime = DateTime.Now.ToLocalTime();

            using (FileStream fileStream = File.Create("DMP-FULL Terraria " + Main.versionNumber + " " + localTime.Year.ToString("D4") + "-" + localTime.Month.ToString("D2") + "-" + localTime.Day.ToString("D2") + " " + localTime.Hour.ToString("D2") + "_" + localTime.Minute.ToString("D2") + "_" + localTime.Second.ToString("D2") + ".dmp"))
            {
                Process currentProcess = Process.GetCurrentProcess();
                CrashDump.MiniDumpWriteDump(currentProcess.Handle, currentProcess.Id, fileStream.SafeFileHandle.DangerousGetHandle(), CrashDump.MINIDUMP_TYPE.MiniDumpWithFullMemory, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero);
            }
        }