Windows中开启dump的方法

运行REGEDIT.EXE 找到 “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps”. 如果该键不存在,则按以下操作进行:
1)新建LocalDumps 键
2)创建一个与你的Windows store应用进程同名的子键,比如说MyApp.exe
3)在子键中创建一个名为DumpFolder,类型为REG_EXPAND_SZ的值,设置它的值为你需要生成dump的目录(保证要存在),比如说C:\Dumps
4)在同一个子键中创建一个名为DumpCount,类型为REG_DWORD的值,设置他的值为5 (生成dump的最大数目)
5)在同一个子键中创建一个名为DumpType,类型为REG_DWORD的值,设置他的值为2 (full dump)

以下是一个注册脚本,保存为后缀名为reg的文件

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps]
"DumpCount"=hex(b):0a,00,00,00,00,00,00,00
"DumpType"=hex(b):02,00,00,00,00,00,00,00
"DumpFolder"=hex(2):43,00,3a,00,5c,00,4c,00,6f,00,63,00,61,00,6c,00,44,00,75,\
  00,6d,00,70,00,73,00,00,00
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C#程序开启dump,可以在程序启动设置UnhandledExceptionEventHandler事件处理程序。当程序遇到未处理的异常时,会调用该事件处理程序,我们可以在这个事件处理程序生成dump文件。 下面是一个简单的示例代码: ``` using System; using System.Diagnostics; using System.IO; namespace DumpTest { class Program { static void Main(string[] args) { // 添加未处理异常处理程序 AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); // 触发一个异常 throw new Exception("Test Exception"); } static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { // 生成dump文件 string dumpPath = Path.Combine(Path.GetTempPath(), "DumpTest.dmp"); using (FileStream fs = new FileStream(dumpPath, FileMode.Create)) { Process process = Process.GetCurrentProcess(); process.WriteMiniDump(fs.SafeFileHandle.DangerousGetHandle(), MiniDumpType.WithFullMemory, IntPtr.Zero, IntPtr.Zero); } Console.WriteLine("Dump file has been generated: " + dumpPath); } } } ``` 在上面的代码,我们使用`AppDomain.CurrentDomain.UnhandledException`事件来处理未处理的异常。在事件处理程序,我们使用`Process.WriteMiniDump`方法来生成dump文件,该方法需要指定dump文件的输出流、dump类型、异常信息和进程句柄等参数。 注意,在实际的应用程序,还需要考虑如何保存和处理dump文件,以及如何通知用户或管理员等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值