/// <summary>
        /// 创建一个MiniDump文件,用以调试分析
        /// </summary>
        public static void CreateMiniDump()
        {
            var proc     = Process.GetCurrentProcess();
            var fileName = String.Format("FKMinidump_{0}_{1}.dmp", proc.ProcessName, DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss"));

            var info = new MINIDUMP_EXCEPTION_INFORMATION()
            {
                ThreadId          = GetCurrentThreadId(),
                ExceptionPointers = Marshal.GetExceptionPointers(),
                ClientPointers    = 1
            };

            using (var fs = new FileStream(fileName, FileMode.Create))
            {
                MiniDumpWriteDump(proc.Handle, (uint)proc.Id, fs.SafeFileHandle.DangerousGetHandle(),
                                  (int)MINIDUMP_TYPE.MiniDumpWithFullMemory, ref info, IntPtr.Zero, IntPtr.Zero);
            }

            // Process.GetCurrentProcess().Kill();
        }
 private static extern bool MiniDumpWriteDump(IntPtr hProcess, uint ProcessId,
                                              IntPtr hFile, int DumpType, ref MINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
                                              IntPtr UserStreamParam, IntPtr CallbackParam);