Пример #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);
        }
Пример #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));
        }
Пример #3
0
        private static bool Write(CrashDump.Options options, CrashDump.ExceptionInfo exceptionInfo, string outputDirectory)
        {
            if (!Platform.get_IsWindows())
            {
                return(false);
            }
            string path = Path.Combine(outputDirectory, CrashDump.CreateDumpName());

            if (!Directory.Exists(outputDirectory))
            {
                Directory.CreateDirectory(outputDirectory);
            }
            using (FileStream fileStream = File.Create(path))
                return(CrashDump.Write((SafeHandle)fileStream.SafeFileHandle, options, exceptionInfo));
        }
Пример #4
0
        // Token: 0x06000976 RID: 2422 RVA: 0x003B6054 File Offset: 0x003B4254
        private static bool Write(CrashDump.Options options, CrashDump.ExceptionInfo exceptionInfo, string outputDirectory)
        {
            if (!Platform.IsWindows)
            {
                return(false);
            }
            string arg_23_0 = Path.Combine(outputDirectory, CrashDump.CreateDumpName());

            if (!Directory.Exists(outputDirectory))
            {
                Directory.CreateDirectory(outputDirectory);
            }
            bool result;

            using (FileStream fileStream = File.Create(arg_23_0))
            {
                result = CrashDump.Write(fileStream.SafeFileHandle, options, exceptionInfo);
            }
            return(result);
        }