在Windows中出现了进程崩溃... 崩溃转储位置

31

某个原因导致了Windows进程崩溃,我需要分析崩溃转储文件。

在Windows 2003中,PC Health可以帮助我们找到崩溃转储文件。

如何在Windows 2008中获取崩溃转储文件的位置?

7个回答

25

我在Windows 2008上观察到Windows错误报告崩溃转储文件被保存在以下文件夹中:

C:\Users\All Users\Microsoft\Windows\WER\ReportQueue

而这个文件夹在从Windows Vista开始,是以下路径的别名:

C:\ProgramData\Microsoft\Windows\WER\ReportQueue


你知道在Windows 10上这个文件夹在哪里吗?“所有用户”不再在用户文件夹中了? - AllTradesJack
1
@AllTradesJack,可能是C:\ ProgramData \ Microsoft \ Windows \ WER \。此外,在Windows 8上,“所有用户”是一个隐藏的联接点。如果在Windows资源管理器选项中取消选中“隐藏受保护的操作系统文件”选项,则有可能看到它。它可能会重定向到c:\ ProgramData。 - Aaron Carlson

18

或许有用(PowerShell)

http://sbrennan.net/2012/10/21/configuring-application-crash-dumps-with-powershell/

从Windows Vista和Windows Server 2008开始,微软引入了Windows错误报告或WER。这使得可以配置服务器自动启用应用程序崩溃转储的生成和捕获。该配置在此处进行讨论。 默认配置的主要问题是转储文件将在运行进程的%APPDATA%\crashdumps文件夹中创建和存储,这可能使收集转储变得困难,因为它们分散在整个服务器上。还存在其他问题,但我始终面临的主要问题是,这是一个简单的任务,非常重复但容易出错。

Powershell源代码(C#也应该有用):

$verifydumpkey = Test-Path "HKLM:\Software\Microsoft\windows\Windows Error Reporting\LocalDumps"
 
    if ($verifydumpkey -eq $false )
    {
    New-Item -Path "HKLM:\Software\Microsoft\windows\Windows Error Reporting\" -Name LocalDumps
    }
 
##### adding the values
 
$dumpkey = "HKLM:\Software\Microsoft\Windows\Windows Error Reporting\LocalDumps"
 
New-ItemProperty $dumpkey -Name "DumpFolder" -Value $Folder -PropertyType "ExpandString" -Force
New-ItemProperty $dumpkey -Name "DumpCount" -Value 10 -PropertyType "Dword" -Force
New-ItemProperty $dumpkey -Name "DumpType" -Value 2 -PropertyType "Dword" -Force

WER -Windows Error Reporting- 文件夹:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps

%localappdata%\Microsoft\Windows\WER

%LOCALAPPDATA%\CrashDumps

C:\Users[应用程序崩溃时的当前用户]\AppData\Local\Microsoft\Windows\WER\ReportArchive

C:\ProgramData\Microsoft\Windows\WER\ReportArchive

c:\Users\All Users\Microsoft\Windows\WER\ReportQueue\

蓝屏错误崩溃

%WINDIR%\Minidump

%WINDIR%\MEMORY.DMP

来源:
http://sbrennan.net/2012/10/21/configuring-application-crash-dumps-with-powershell/
http://msdn.microsoft.com/en-us/library/windows/desktop/bb787181%28v=vs.85%29.aspx
http://support.microsoft.com/kb/931673
https://support2.microsoft.com/kb/931673?wa=wsignin1.0


11

那个注册表键是空的。 - Ian Boyd

3

您可以进行注册表更改以明确选择崩溃转储文件的位置,否则%localappdata%\Microsoft\Windows\WER是默认位置。我假设对于运行在系统下的用户或服务,%localappdata%的定义是不同的。我认为您需要启用WER。

http://support.microsoft.com/kb/931673


2
核心转储通常只在Windows内核崩溃(也称蓝屏)时才生成。服务崩溃大多数情况下只会留下一些日志记录(可能在事件查看器中)。如果您正在寻找蓝屏崩溃转储,请查看C:\ Windows \ Minidump或C:\ windows \ MEMORY.DMP。

那个刷新导致系统(BSOD)崩溃。我们正在寻找Windows中应用程序的崩溃日志。 - Ian Boyd

2
在Windows 2008 R2上,我看到应用程序崩溃转储文件存储在以下目录之一:
C:\Users\[某个用户]\Microsoft\Windows\WER\ReportArchive 或者
C:\ProgramData\Microsoft\Windows\WER\ReportArchive 我不知道Windows如何决定使用哪个目录。

0

Windows 7,64位,注册表键没有修改,位置为:

C:\ Users [应用程序崩溃时的当前用户] \ AppData \ Local \ Microsoft \ Windows \ WER \ ReportArchive


在 Windows 8 64 位系统中,这个文件夹也是:C:\ProgramData\Microsoft\Windows\WER\ReportArchive。 - Kiquenet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接