VS2012 C++ 编译期间随机出现蓝屏

VS2012 C++ 编译期间随机出现蓝屏

我有一台装有 Visual Studio 2012 的 Windows 7 VM (ESX),用于处理大型 C++ 项目的持续集成。该解决方案目前使用 /MP 标志构建,但使用 IncrediBuild 也会出现蓝屏。

通常蓝屏要过几个小时才会出现,我花了数周时间安装各种软件来查找问题根源。有一次我看到了“Intel C++ 编译器驱动程序”崩溃消息,当我点击结束进程时,系统重新启动了,但我不能确定这是同一个问题。

我尝试过的一些方法:

  • 清理 Windows 7
  • 没有更新的 Visual Studio
  • Visual Studio 更新 4
  • 使用 Incredibuild 进行构建
  • 使用 MSBuild 进行构建
  • Visual Studio 补丁 KB2781514

崩溃通常似乎涉及文件 io 以及系统正在执行第二项任务时,但它只会偶尔写入小型转储文件。这是昨天的一次崩溃:

Bugcheck code 0000000A
Arguments fffff6fb`7dbedf68 00000000`00000002 00000000`00000000 fffff800`01f100dc

RetAddr           : Args to Child                                                           : Call Site
fffff800`01e93169 : 00000000`0000000a fffff6fb`7dbedf68 00000000`00000002 00000000`00000000 : nt!KeBugCheckEx
fffff800`01e91de0 : 00000000`00000000 00000000`00000000 00000000`00000000 fffff6fb`7dbedf68 : nt!KiBugCheckDispatch+0x69
fffff800`01f100dc : fffff880`078dbae0 fffff8a0`102a7a90 000008ed`000008ed fffff880`078da950 : nt!KiPageFault+0x260
fffff800`01e91cee : fffff880`078da6e0 fffff880`078d4001 fffff880`078da340 fffff6fb`7dbedf68 : nt! ?? ::FNODOBFM::`string'+0x432bc
fffff800`01f100dc : bb879432`bcccdb41 00000000`3f7feaec becaef2c`40a0fb2a 3f800000`42c740b2 : nt!KiPageFault+0x16e
fffff800`01e91cee : 00000000`00000000 ffff6da8`956c4a16 00000000`00000023 fffff6fb`7dbedf68 : nt! ?? ::FNODOBFM::`string'+0x432bc
fffff800`01f100dc : fffff880`078daa10 fffff800`02188610 00000000`00000001 fffff880`078daa18 : nt!KiPageFault+0x16e
fffff800`01e91cee : 00000000`00000001 fffffa81`28708b00 fffffa81`00100020 fffff6fb`7dbf5020 : nt! ?? ::FNODOBFM::`string'+0x432bc
fffff800`01f100dc : fffffa81`26cca4a0 fffff880`078db390 fffffa81`21ee87c0 fffffa81`2272f3f0 : nt!KiPageFault+0x16e
fffff800`01e91cee : 00000000`00000000 fffffa81`2272f3f0 00000000`00000000 fffff880`01e00100 : nt! ?? ::FNODOBFM::`string'+0x432bc
fffff800`01e98ff4 : fffffa81`2272f3f0 fffffa81`26cca190 fffff880`078db390 fffff880`012d9730 : nt!KiPageFault+0x16e
fffff800`01e737b7 : fffff880`01e00180 fffff880`01e0010a 00000000`00000001 00000000`00000000 : nt!KiDeferredReadyThread+0xe4
fffff800`01e8920f : fffff8a0`17af8a0a fffff880`01e00180 00000000`00000000 fffff880`012e9306 : nt!KeSetEventBoostPriority+0x137
fffff880`01250413 : fffffa81`2272f438 00000000`00000000 fffffa81`2272f3f0 fffffa81`2272f3f0 : nt!ExpReleaseResourceForThreadLite+0x2bf
fffff880`012527b4 : fffffa81`2272f3f0 00000000`00000001 00000000`00000000 00000000`00000000 : Ntfs!NtfsCleanupIrpContext+0x1d3
fffff880`012e8885 : 00000000`00000000 fffffa81`294c7360 fffff880`078db390 fffffa81`2272f3f0 : Ntfs!NtfsExtendedCompleteRequestInternal+0xd4
fffff880`012513ad : fffffa81`2272f3f0 fffffa81`26cca190 fffff880`078db390 fffffa81`00000000 : Ntfs!NtfsCommonCreate+0x215e
fffff800`01e9f878 : fffff880`078db300 fffff800`01e975d1 fffff8a0`1528af50 00000000`00000000 : Ntfs!NtfsCommonCreateCallout+0x1d
fffff880`01251b2f : fffff880`01251390 fffff880`012509c0 fffff880`078db300 fffff880`012f1100 : nt!KeExpandKernelStackAndCalloutEx+0xd8
fffff880`012e9b3c : 00000000`00000000 00000000`00000000 fffff880`078db520 fffffa81`26cca190 : Ntfs!NtfsCommonCreateOnNewStack+0x4f
fffff880`01163bcf : fffffa81`22d67030 fffffa81`26cca190 00000000`00000000 00000000`00000000 : Ntfs!NtfsFsdCreate+0x1ac
fffff880`011832b9 : fffffa81`26cca190 fffffa81`22d88010 fffffa81`26cca100 fffffa81`22b85880 : fltmgr!FltpLegacyProcessingAfterPreCallbacksCompleted+0x24f
fffff800`02193efc : 00000000`00000005 fffffa81`21ee8978 fffffa81`294c7360 00000000`00000000 : fltmgr!FltpCreate+0x2a9
fffff800`0218f878 : fffffa81`22b83cd0 fffff800`00000000 fffffa81`21ee87c0 fffffa81`00000001 : nt!IopParseDevice+0x14d3
fffff800`02190a96 : 00000000`00000000 fffffa81`21ee87c0 fffff8a0`039bf010 fffffa81`21940750 : nt!ObpLookupObjectName+0x588
fffff800`0219239c : 00000000`00000400 00000000`00000000 fffffa81`294c7301 fffff880`078db958 : nt!ObOpenObjectByName+0x306
fffff800`0217cdd8 : 00000000`0018e288 fffff8a0`00100020 00000000`0018eae0 00000000`0018e228 : nt!IopCreateFile+0x2bc
fffff800`01e92e53 : fffffa81`29a721f0 00000000`00000001 fffffa81`28708b50 fffff800`0218b7a4 : nt!NtOpenFile+0x58
00000000`778915ea : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x13
00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x778915ea

非常感谢任何关于如何尝试找出原因的建议。

答案1

您需要下载调试符号对于 Windows 7,如果您还没有这样做的话。

然后使用 WinDbg 之类的工具加载转储文件并分析堆栈跟踪。这应该会给你提供一些线索,让你知道真正的问题是什么。

此外,在系统重新启动之前检查事件日志中的错误。在事件查看器中,转到“应用程序和服务日志 > Microsoft > Windows > 诊断-性能”,然后查找事件 ID 100 以确定其启动时间。然后返回系统/应用程序事件并从该时间开始向后锁定。

相关内容