崩溃生成转储

crash generate dump

本文关键字:转储 崩溃      更新时间:2023-10-16

我的应用程序在运行 3-4 天后偶尔会在客户机器上崩溃。是否可以在应用程序启动时自动将应用程序附加到 ADplus 等调试器?这是为了在应用程序崩溃时生成转储文件。

由于您想使用ADPlus,因此我认为仅Windows解决方案就可以了。
在这种情况下,您可以安装事后调试器。一旦您的应用程序崩溃,它就会弹出。我通常使用windbg。

你可能想看看SetUnhandledExceptionFilter函数。

IMO 在进程启动时不必附加到调试器。当进程终止并且位置设置为AeDebug RegistryKey时,Windows将查找调试器

在x86计算机上,它是\HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionAeDebug

CDB可以设置为事后调试器

将事后调试器更改为 CDB,运行CDB -IAE或CDB -IAEC 键字符串。当 -iaec 参数为 使用,键字符串指定一个字符串 附加到命令行末尾 用于启动事后分析 调试器。如果密钥字符串包含 空格,必须包含在 引号。此命令将 如果成功,则不显示任何消息,但 将显示失败消息,如果它 失败。当国开行是事后分析 调试器,它将被激活 每当应用程序崩溃时。

当进程终止时,我会有类似cdb -iaec ".dump /ma /u crashedapp.dmp;q"的东西来获取内存转储。

如果操作系统是Vista SP1+,则可以将注册表配置为使用WER http://msdn.microsoft.com/en-us/library/bb787181(VS.85)获取完整内存转储.aspx