如何解决Windows 8崩溃在不到一分钟的时间吗

乍一看
  • Windows 8.1系统建设者OEM DVD 64位

窗户8已经出去一段时间,有一个接口一样酷是烦人的。直到你得到它的悬挂。但是,就像任何计算机操作系统,它可以摔倒。幸运的是,有一个简单的方法来解决最崩溃的原因;就叫WinDbg,窗户调试器;一个免费的工具来诊断窗口崩溃的最常见原因,不规矩的第三方驱动程序。

在W8,死亡的蓝色屏幕/ BSOD已经修改为包含一个大型的、简单:(表情符号和短消息在人类语言(如果不是很丰富)。(看幻灯片的版本走你通过任何崩溃。)

Windows 8

死亡的Windows 8蓝色屏幕已经成为不满的皱眉。

同时,微软取得进步在转储文件中创建和管理过程。本文主要关注W8时,同时适用于RT和信息服务器2012年。早期的操作系统,请参阅在几分钟内解决Windows 7的崩溃或者,XP和2000,看到如何在几分钟内解决窗口崩溃

对Windows崩溃

操作系统崩溃有很大的不同应用程序崩溃,系统挂起或其他问题。在大多数情况下,操作系统崩溃保护措施。操作系统时发现关键设备失败或一个内部操作系统状态已被确认为不一致的可能的病毒,因为坏的设备驱动程序,甚至RAM故障,一般安全立即停止。否则,继续操作将允许更严重的损伤,如应用程序数据损坏或脱落。

[在路上帮助:去哪里寻求帮助与Windows崩溃]

三分之二的系统崩溃是由第三方引起的司机采取不恰当的行动(如写作不存在内存)在内核模式直接访问操作系统内核和硬件。

相比之下,司机操作在用户模式下,只有间接访问操作系统内核,不能直接导致崩溃。一小部分崩溃是由于硬件问题,比如坏内存,操作系统本身的错误更少。和一些原因仅仅是未知的。

谢谢你的内存转储

内存转储是最丑的你最好的朋友。这是一个计算机系统的状态的快照时间点,操作系统停止。,非常不友善的大量数据转储文件包含,你通常只需要几项容易掌握和使用。与操作系统Windows 8的引入,现在创建了四个不同的内存转储;完整、内核和Minidumps和新的自动内存转储。

1。自动内存转储

地点:% SystemRoot % \ Memory.dmp

大小:≈操作系统内核的大小

自动内存转储是默认选项选择安装Windows 8时。这是支持“系统管理”页面创建的文件配置已经更新来减少磁盘上的页面文件大小。自动生成一个内核内存转储内存转储选项,不同之处在于当您选择自动,它允许短信过程中减少页面文件小于RAM的大小。

2。完全内存转储

地点:% SystemRoot % \ Memory.dmp

大小:≈已安装的RAM和1 mb的大小

一个完整(或全部)内存转储约等于安装的内存总量。许多系统有多个GBs,这很快就会成为一个存储问题,特别是如果你有超过偶尔崩溃。通常我不建议保存一个完整的内存转储,因为他们花费这么多空间,通常是不需要的。然而,在某些情况下使用微软(或其他供应商)时发现一个非常复杂的问题的原因完全内存转储将很有帮助。因此,坚持自动转储,但准备开关设置生成一个完整的转储在极少数情况下。

3所示。内核内存转储

地点:% SystemRoot % \ Memory.dmp

大小:≈物理内存的大小由内核组件“拥有”

内核转储大致相等的大小是Windows 8内核的内存占用。在我的测试系统,4 gb RAM运行Windows 8在64位处理器内核转储是336 mb。有时,转储文件必须运送,我压缩它,带它到80 mb。一个内核转储一个优点是,它包含分析所需的二进制文件。自动转储默认设置创建一个内核转储文件,只保存最近以及minidump每个事件。

4所示。小型或minidump

地点:% SystemRoot % \ Minidump

x86上的大小:至少64 k和128 k x64 (279 k W8在我测试PC)

Minidumps包括内存页指出他们注册他们的价值观在故障点,以及断层线程的堆栈。是什么让他们小,它们不包含任何二进制文件或可执行文件在内存的时候失败。

然而,这些文件是至关重要的,以备后续分析的调试器。只要你调试机器上创建转储文件,WinDbg可以找到他们在系统根文件夹(除非二进制文件被改变一个系统转储文件创建后更新)。或者调试器应该能够自动定位它们通过SymServ,微软的在线商店的符号文件。Windows 8创建并保存一个minidump每撞车事件,本质上提供了一个历史记录的所有事件的生命系统。

配置W8来得到正确的内存转储

虽然W8设置操作系统的默认配置生成内存转储格式将最有可能需要快速确定。从W8风格菜单只需输入“控制面板”(或只有前几个字母在许多情况下),而将你的应用页面,您应该看到一个白盒子周围的“控制面板”;输入将会带你去熟悉的界面。

Windows 8

让你的方式在W8控制面板。

内存转储的路径检查Windows 8的设置,开始在控制面板,如下:

控制面板|系统安全| | |高级系统设置系统启动和恢复|设置

一旦在启动和恢复对话框确保选中“自动内存转储”。你可能也想确保“将事件写入系统日志”和“自动重新启动”(也应该是在默认情况下)检查。

安装WinDbg

系统需求

设置你的电脑WinDbg-based事故分析,您将需要以下几点:

•32位或64位Windows 8 / R2 / 2012 / Windows 7 / Server 2008服务器

根据处理器上运行调试器,您可以使用32位或64位的调试工具。注意,这不是重要的转储文件是否在基于x86的或x64-based平台。

•窗口部分的调试工具Windows 8的Windows SDK,可以从微软下载免费。

•约103 mb的硬盘空间(不包括存储空间转储文件或符号文件)

•生活网络连接

下载WinDbg

首先下载sdksetup。exe,一个小文件(969 kb),启动Web设置中,您选择安装哪些组件。

标准下载。

自动下载(自行下载将开始):

空间要求

忽略1.2 gb的磁盘空间要求;你只会安装工具包的一小部分。在我的测试机器上安装过程预测256.2 mb,但只需要103 mb的安装后根据文件资源管理器。

运行skdsetup.exe

软件开发工具包(SDK)安装到机器,您将使用来查看内存转储文件。

答:sdksetup.exe发射。

b .指定地点:

建议安装路径:

C:\Program Files (x86)\Windows包\ 8.0 \

如果你下载安装在单独的计算机,选择第二个选项和设置适当的路径。

接受许可协议

d .去掉勾除了调试工具窗口

符号是什么,为什么需要他们吗?

既然之前安装和调试器调用一个转储文件,你必须确保它能够访问符号文件。符号表是编译的副产品。当一个程序编译的源代码从高级语言翻译成机器代码。同时,编译器会创建一个符号文件标识符的列表,其位置在程序中,和它们的属性。因为程序不需要这个信息来执行,它可以存储在另一个文件。这减少了最终的可执行文件的大小所以占用更少的磁盘空间和快速加载到内存中。但是,当一个程序引起的问题,操作系统只知道十六进制地址的问题发生,没有谁是和这个人在做什么。符号表,可以通过使用SymServe,提供这些信息。

SymServ (SymSrv)

Windows 8

Windows 8的UI,右键单击WinDbg然后选择“以管理员身份运行”栏,弹出屏幕的底部。

SymServ(也拼写SymSrv)是微软提供的一个至关重要的实用程序管理检索识别正确的符号表,供WinDbg使用。没有收取它的使用和它的功能自动在后台只要正确配置调试器,并自由访问微软符号存储区。

运行WinDbg

从W8 UI,右键单击WinDbg您将使用的版本(x64或x86)然后选择“以管理员身份运行”栏,弹出屏幕底部的。你将会看到一个非常不令人兴奋的应用程序接口;一块灰色。用数据填充它之前你必须告诉它在哪儿找到符号文件。

设置文件路径标志

有大量的符号表文件为Windows,因为每个操作系统的构建,甚至一次性变异,导致一个新文件。使用错误的符号表就像找到你在旧金山和波士顿的地图。确保使用正确的符号,在WinDbg的菜单栏,选择如下:

文件|符号文件路径

在符号搜索路径窗口中输入以下地址:

srv * c: \ * http://msdl.microsoft.com/download/symbols缓存

注意,星号之间的地址就是你想要的符号存储以供将来参考。例如,我将符号存储在一个文件夹叫符号的根源我c:驱动器,因此:

srv * c: \符号* http://msdl.microsoft.com/download/symbols

确保你的防火墙允许访问msdl.microsoft.com。

WinDbg如何处理符号文件

当打开一个内存转储,WinDbg将查看可执行文件(。exe . dll,等等)和提取版本信息。然后创建一个请求在微软SymServ,其中包括这个版本信息和定位精确的符号表信息。它不会下载所有符号的特定的操作系统故障排除;这将下载它所需要的。

空间符号文件

所需的空间来存储符号不同。W8在我的测试机器,运行大量的碰撞测试后,文件夹是35 mb。在另一个系统,运行支W7,我打开从其他几个系统转储文件文件夹仍在100 mb。记住,如果你打开的文件从其他机器(操作系统)的变体文件夹可以继续变大。

或者,您可以选择从微软下载和存储完整的符号文件。之前,请注意,每个符号包——你应该至少1 gb的磁盘空间自由。这是因为,除了空间需要存储文件,您还需要空间所需的临时文件。即使这些天硬盘的成本低,使用的空间是值得注意的。

•每个x86象征包可能需要750 MB的硬盘空间。

•每个x64象征包可能需要640 MB或更多。

象征包如除非特别指出,如果你正在使用一个SP2 Windows版本,您将需要安装SP1的原始符号的RTM版本和之前安装SP2的符号。

创建一个转储文件

如果你没有一个内存转储看吗?不用担心。你可以自己生成一个。有不同的方法去做,但是最好的方法是使用一个工具叫NotMyFault由马克·若斯诺维奇。

下载NotMyFault

NotMyFault,去窗口内部SysInternals的书页,向下滚动到书工具部分,您将看到一个下载链接。工具包括一个可供选择的选项,加载一个行为不端的驱动程序(需要管理员权限)。在下载,我创建了一个从桌面快捷方式来简化访问。

记住,使用NotMyFault将创建一个系统崩溃,虽然我从未见过一个问题使用该工具没有保证在生活中,特别是在计算机。准备你的系统和有谁需要访问日志了几分钟。保存所有文件包含的信息,否则你可能会失去和关闭所有应用程序。正确处理的,这台机器应该下降,重启和minidump和内核转储应该创建。

运行NotMyFault

发射NotMyFault并选择高IRQL断层(内核模式),那么。点击事故按钮。Frown-of-Frustration将出现在第二个,minidump和内核转储文件将被保存,如果正确地配置您的系统将会重启。

Windows 8

当Windows 8崩溃,你看(1)Frown-of-Frustration新BSOD。重启后你看到(2)为微软提供发送崩溃文件。最后一个屏幕(3)列出了文件将被发送,显示了隐私权声明和要求你给他们许可。

在W8 UI将一群蓝色的消息,“你的电脑遇到了一个问题。”。如果你点击“发送信息”按钮,微软将使用WinDbg和命令”!分析”作为自动化服务的一部分来确定问题的根源。输出是结合数据库的驱动程序bug修复来帮助识别失败。

启动WinDbg和(通常)看到事故的原因

发射WinDbg W8通过右键单击它从UI然后选择“以管理员身份运行”栏,弹出屏幕的底部。一旦运行调试器,选择菜单选项

文件|打开崩溃转储

,点开你要分析的转储文件。注意WinDbg将打开任何大小转储文件;minidump,内核转储或完整的转储文件。当保存工作空间信息,说是;它将记住转储文件的位置。

一个命令窗口就会打开。如果这是你第一次使用这个系统上WinDbg或看一个从另一个系统转储文件你没有加载文件之前,它可能会花一些时间来充满信息。因为调试器来确定精确的版本的Windows然后去微软SymServ并找到相应的文件和下载需要的象征。在随后的会议这一步是不必要的,因为符号保存在硬盘上。一旦WinDbg符号需要将运行一个分析和结果填满窗口。这将包括基本信息如WinDbg的版本,转储文件的位置和名称,所使用的符号搜索路径,甚至提供作了简要分析,在这种情况下,

可能由于:myfault.sys

当然,我们知道是真实的(myfault。sys NotMyFault是司机的名字)。

WinDbg错误消息

如果WinDbg报告* * * * * *的警告或错误,解决的办法通常是简单的。以下列出了常见的消息,他们的意思是什么,如何解决它们。

* * *注意:ntoskrnl.exe无法验证时间戳

* * *错误:无法加载模块加载完成但符号ntoskrnl.exe

这是很重要的。当你看到这两个消息附近WinDbg的输出的开始,这意味着你不会得到你所需要的分析。这是确认“Bugcheck分析”后自动运行,和消息

* * * * *内核符号是错误的。请修正符号来做分析

会显示出来。

可能的原因:

•没有路径/错误的路径;路径符号文件没有设置或路径不正确(寻找错误,比如一个空白空间)。检查符号路径。

•连接失败;检查您的网络连接,以确保正常工作。

•访问阻塞;防火墙屏蔽了符号在检索文件或文件受损。看到没有防火墙阻止访问msdl.microsoft.com(它可能只是允许访问www.microsoft.com)。

注意,如果最初防火墙阻止WinDbg下载一个符号表,它会导致一个损坏的文件。如果分块防火墙并再次尝试下载符号文件不工作;文件仍然受损。最快的修复是WinDbg关闭、删除符号文件夹(你最有可能在c: \符号),并开启防火墙。接下来,重新WinDbg和转储文件。调试器将创建文件夹,重新下载符号。

不要去进一步分析,直到这是纠正。

如果你看到以下错误,不用担心:

* * *注意:myfault.sys无法验证时间戳

* * *错误:无法加载模块加载完成但符号myfault.sys

Windows 8

WinDbg自动显示罪魁祸首如图所示。

这意味着调试器在myfault.sys寻找信息。然而,由于这是一个第三方驱动程序,没有符号,因为微软不存储所有的第三方驱动程序。关键是你可以忽略这个错误消息。供应商不通常船司机与符号文件,他们不需要你的工作;可以确定问题的驱动程序。

那么,什么导致了事故?

如上所述,当您打开一个转储文件与WinDbg它自动运行一个基本的分析,往往会钉罪魁祸首甚至没有任何直接给调试器命令所示的屏幕,它说“可能造成的:myfault.sys”

更多的信息

有点崩溃事件的更多信息和怀疑模块很容易。通常,所有你需要的是两个命令中数百人,而强大的调试器提供了:

分析- v !

lmvm。

一个命令WinDbg的新方法

通常,您将需要输入命令和参数。然而,事情已经发生了变化,和Windows。如果你好好看看WinDbg界面下方“Bugcheck分析”框,它说“使用!分析- v详细的调试信息”,在蓝色下划线命令。是的,这是一个链接。只是碰它,你的命令将运行。但是,如果你没有一个触摸屏,鼠标将正常工作或采取的传统方法的命令输入窗口底部的接口,你看到提示“kd >”(即“内核调试器”)。一定要做到准确;这是一个情况下,语法是关键。例如,注意命令之间的空间和“v”。“v”或冗长的开关告诉WinDbg你想要所有的细节。 You can do the same where you see the link for myfault which will display metadata for the suspect driver.

输出!分析- v

提供的分析。分析- v是一个结合英语和programmer-speak,但却是一个好的开始。事实上,在许多情况下,你不需要去任何进一步的。如果你认识到崩溃的原因,你可能做的。

输出!分析- v

Windows 8

!分析- v命令显示事故的原因和可能的罪魁祸首。

!分析- v提供更详细的系统崩溃。在这种情况下,准确地描述了测试驱动程序(myfault.sys)指示;访问一个地址在一个中断级别太高了。

分析

DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)

是尝试访问可分页(或完全无效的)地址在一个中断请求(IRQL)水平太高了。这通常是由于使用不当司机地址。

在调试细节报告表明,问题是“WIN_8_DRIVER_FAULT”, NotMyFault。exe是活跃的。

堆栈溢出

调试器的输出的一个重要特性使用! - v是堆栈的文本分析。每当看着一个转储文件总是看看堆栈的最右端为任何第三方驱动程序。在这种情况下,我们会看到myfault。请注意,按时间顺序的序列事件从底部到顶部;随着每个新任务执行的系统出现在顶部。在这个相当短的堆栈可以看到myfault活跃,然后发生页面错误,系统宣布BugCheck,当系统停止筛选(蓝色)。

看这个的一个方法是,当你看到一个第三方驱动程序栈上的活跃在系统崩溃时,这就像走进一个房间,找到一个身体在地板上,有人站在它手里拿着一个确凿的证据;这并不意味着他是有罪的,但让他怀疑第一。

输出lmvm(或通过选择myfault)

知道嫌疑人的名字是不够的;你需要知道他住在哪里,他做什么。这就是lmvm进来。它提供了一系列的数据从这张图片路径(并不是所有的司机住在% systemroot % \ system32系统\司机。)、时间戳、图像大小和文件类型(在这种情况下,一个司机)到公司,产品它属于,版本号和描述。一些公司甚至包含联系信息技术支持。调试器的报告,是完全依赖于开发人员包括,在某些情况下,是很少的。

之后你找到供应商的名字,去它的网站和检查更新,知识库文章,和其他支持信息。如果这样的项目不存在或不解决问题,联系他们。他们可能会问你发送调试信息(很容易调试器的输出复制到电子邮件或Word文档)或他们可能会问你发送他们的内存转储(压缩,压缩它,保护数据完整性)。

如果你有任何问题关于使用WinDbg,查看WinDbg帮助文件。它是优秀的。,当读到一个命令一定要看提供的信息对许多参数,如“v”,返回更多的(详细的)信息。

其他第三

虽然这是事实,按照上面的说明,你可能会立即知道三分之二的崩溃的原因;离开那个烦人的其他第三。你是做什么工作的呢?的列表可以造成系统故障不短;它的范围可以从一个风扇失败,允许系统过热,糟糕的记性。

有时是硬件

如果你有重复的崩溃但没有明确的或一致的原因,它可能是内存的问题。两个好方法来检查内存是Windows内存诊断工具和Memtest86。去控制面板,它的搜索框中输入“记忆”然后选择“诊断你电脑的内存问题”。

这个简单的诊断工具是快速和伟大的工作。很多人打折记忆问题的可能性,因为他们占一小部分系统崩溃。然而,他们经常的原因让你猜测最长的。

窗户是罪魁祸首吗?

在所有的概率:没有。对于所有那些快速的反对者指责微软这样的事件,事实是,Windows是很少系统故障的原因。但是,如果ntoskrnl。exe (Windows核心)或win32。sys(司机最负责“GUI层在Windows上)被命名为罪魁祸首——他们常常是——不要太迅速接受。更有可能是,一些错误的第三方设备驱动程序要求一个Windows组件执行一个操作,通过了一个糟糕的指令,告诉它编写等不存在的记忆。所以,当操作系统肯定可以犯错,排气指责微软之前所有其他的可能性。

我的杀毒软件驱动程序呢?

通常你会看到一个杀毒软件驱动程序命名为罪魁祸首,但很有可能是无罪。原因:防病毒代码的工作都必须关注文件开幕和闭幕。为此,代码位于较低的层的操作系统和不断工作,他经常会在堆栈上的函数调用活动当事故发生。

失踪的供应商信息?

一些驱动程序供应商没有花时间包括足够的信息模块。所以如果lmvm没有帮助,试着看图片上的子目录路径(如果有的话)。时常会其中一个供应商名称或收缩。另一个选择是搜索谷歌。类型的驱动程序名称和/或文件夹名称。你可能会发现供应商以及其他关于司机发布信息。

总结

记住的时间带你去读这篇文章,在您的系统上配置WinDbg远比需要更多的努力来解决两三个崩溃。事实上,大多数事故分析工作将花费你不到一分钟。,而其他第三当然可以更有挑战性,至少你会有更多的时间去尝试。

史密斯是总统亚历山大局域网Inc .自由顾问和作家。他可以达成的DirkADSmith@gmail.com

乍一看
  • Windows 8.1系统建设者OEM DVD 64位

1234567891011121314151617181920. 第1页
第1页的20
工资调查:结果是在