2016-12-01 121 views
1

我经常有BSODs和WinDbg的报告,他们多半类似腐败WinDbg和!chkimg指出哪些腐败?

4: kd> !chkimg -lo 50 -d !nt 
    fffff80177723e6d-fffff80177723e6e 2 bytes - nt!MiPurgeZeroList+6d 
    [ 80 fa:00 e9 ] 
2 errors : !nt (fffff80177723e6d-fffff80177723e6e) 

CHKIMG_EXTENSION: !chkimg -lo 50 -d !nt 
    fffff8021531ae6d-fffff8021531ae6e 2 bytes - nt!MiPurgeZeroList+6d 
    [ 80 fa:00 aa ] 
2 errors : !nt (fffff8021531ae6d-fffff8021531ae6e) 

是什么意思?什么与比较以及腐败是如何相似的?它是否明确指出RAM问题?

UPDATE

做这些数字意味着什么呢? fffff80177723e6dfffff8021531ae6d?这是什么意思,这个结局是否符合?

下面的代码是什么意思:nt!MiPurgeZeroList+6d

+0

MiPurgeZeroList是内存管理器清除内存以将内存页面移动到自由或零内存列表的功能 – magicandre1981

回答

1

我已经在superuser.com上回答了这个问题。 Windbg从Symbol Server下载最初的Exe/DLL,现在chkimg command通过将它们与符号存储上的副本进行比较来检测可执行文件图像中的损坏。

文件的所有部分进行比较,除了那些 丢弃的部分,即是可写的,这是不可执行的,有 “PAGE”在他们的名字,或者是从INITKDBG。你可以通过使用-ss,-as或-r开关来改变这个 行为。

!chkimg显示图像和所述文件作为 图像误差之间的任何失配,但有以下例外:由导入地址表(IAT)占用

  • 地址不检查。

  • Hal.dll和Ntoskrnl.exe中的某些特定地址未被检查,因为加载这些部分时会发生某些更改。 要检查这些地址,请包括-nospec选项。

  • 如果字节值0×90是存在于文件中,和如果该值0XF0是在图像(或副 相反)的相应字节本,这种情况被认为是匹配。通常,符号 服务器保存单处理器 和多处理器版本中存在的一个二进制版本。在基于x86的处理器上,锁 指令为0xF0,并且此指令对应于单处理器版本中的nop(0x90) 指令。如果你想!chkimg到 显示这一对不匹配,请设置-noplock选项。

如果RAM是罚款,检查错误的HDD/HDD电缆(磁盘诊断工具,并运行chkdsk检测和修复NTFS问题)。您也可以将硬盘连接到主板上的不同SATA端口。

+0

如果'!chkimg'显示图像和DISK文件之间的区别,那么DSIM看起来如何呢?没有不同?可能'!chkimg'与MEMORY相比? – Dims

+0

P.S.我已经用现有的电缆执行了所有可能的操作;我想在此处了解调试主题 – Dims

+0

,它将转储中找到的文件与符号服务器中的图像进行比较。如果HDD电缆不良,则在从磁盘读入内存期间可能会损坏 – magicandre1981