電腦出現藍屏0x000001AA怎么修復
藍屏代碼0x000001AA代表"EXCEPTION_ON_INVALID_STACK",意味著在執行過程中發生了無效的堆棧異常。這通常是由于堆棧被破壞或操作系統無法訪問正確的堆棧導致的。這種情況很可能會導致系統崩潰并出現藍屏錯誤。
要解決這個問題,可以嘗試以下方法:
方法一:升級操作系統
確保您的Windows操作系統已經更新到最新版本,可以通過Windows Update進行升級,并安裝所有可用的補丁和更新程序。
方法二:運行系統文件檢查工具(SFC)
打開命令提示符,并作為管理員運行sfc /scannow命令,以檢查和修復系統文件的一致性。
方法三:運行病毒掃描
在某些情況下,病毒或惡意軟件也會導致異常堆棧錯誤,運行全面的殺毒掃描以確保系統沒有受到任何惡意軟件的影響。
方法四:使用一鍵修復工具助手(強烈推薦)
1、首先你的電腦必須下載與完成安裝完成快快藍屏修復助手。如果你還沒有安裝點擊下方鏈接下載。
下載地址:>>>快快藍屏修復助手<<<
提示:安裝路徑不要選擇C盤,避免產生問題造成損失。
2、找到你電腦中的快快藍屏修復助手,點擊進入。看到首頁后,點擊首頁一鍵掃描按鈕開始掃描。等待幾分鐘,就能獲取你急切想要的結果。
3、掃描完成后會顯示電腦的所有藍屏記錄以及藍屏的詳細信息。
4、解決方案頁面顯示了導致該次藍屏的具體原因和解決方案,點擊右上角的一鍵修復進行修復。
5、切記,當修復完成之后我們還是需要重新啟動計算機的。畢竟一切修復的結果,需要重新后,才能被系統認可。
當你完成重啟后,你電腦的藍屏問題已經基本解決了。相信小編,不要急需卸載快快藍屏修復助手。畢竟它強大的功能是你未來的一個保障,可以隨時隨地為你服務,讓你再次遇到藍屏問題不在抓狂。
其他相關信息:
EXCEPTION_ON_INVALID_STACK bug 檢查 的值為 0x000001AA。 此 Bug 檢查指示異常調度已交叉到無效的內核堆棧中。 這可能表示內核堆棧指針在異常調度或展開 (已損壞,例如,由于幀指針) 的堆棧損壞,或者驅動程序正在從不是合法內核堆棧的堆棧上執行。
EXCEPTION_ON_INVALID_STACK參數
參數 | 說明 |
---|---|
1 |
指向當前堆棧的指針。 |
2 |
堆棧的類型限制(如 NormalStackLimits) (3) 。 由于堆棧無效,這表示內核對給定計算機狀態時應處于活動狀態的內核堆棧類型的最佳估計。
堆棧限制類型: 0x0 - 如果在 bug 檢查期間計算堆棧限制,則 bug 檢查堆棧 (任何堆棧) 0x1 - 處理器 DPC 堆棧 0x2 - KeExpandKernelStackAndCallout (Ex) 堆棧 0x3 - 普通內核線程堆棧 0x4 - 線程上下文交換期間的內核線程堆棧 (不明確哪個線程處于活動狀態) 0x5 - win32k 內核/用戶標注堆棧 0x6 - 處理器 ISR 堆棧 0x7 - 內核調試器堆棧在處理 KD I/O) 時 (任何堆棧 0x8 - 處理器 NMI 處理堆棧 0x9 - 處理堆棧檢查處理器計算機 0xA - 處理器異常堆棧 (用于調度某些引發的 IRQL 異常) |
3 |
指向上下文記錄的指針,表示在遇到無效堆棧時為異常) 解除 (或調度的上下文。 |
4 |
提供表示正在調度的活動異常的異常記錄。 |
原因
嘗試訪問無效堆棧。 由于內核堆棧的大小有限,因此開發人員需要小心跟蹤它的限制,例如,當使用它復制視頻內存塊時。 有關 Windows 內核堆棧的信息,請參閱 使用內核堆棧。
解決方法
使用完整內核轉儲或附加的調試器,以下命令可能有助于收集信息并跟蹤錯誤訪問內存的代碼。
首先使用 !analyze 命令收集信息,特別是 bug 檢查參數。 檢查出錯的源行和模塊名稱(如果可用)。
Arguments: Arg1: 00000018940ffbe8 Arg2: 0000000000000003 Arg3: ffffe301c8db2900 Arg4: ffffdc0e9ee665d8
使用 !analyze 輸出中提供的 .trap 命令鏈接將上下文設置為陷阱幀。
2: kd> .trap 0xffffdc0e9ee66680 NOTE: The trap frame does not contain all registers. Some register values may be zeroed or incorrect. rax=003f8b813f20b6e0 rbx=0000000000000000 rcx=ee7defdd9c530000 rdx=ffffcb81660ea078 rsi=0000000000000000 rdi=0000000000000000 rip=fffff8002b7f8933 rsp=ffffdc0e9ee66810 rbp=ffffcb81511c3010 r8=0000000000000001 r9=0000000000004014 r10=ffffdc0e9ee66910 r11=0000000000000000 r12=0000000000000000 r13=0000000000000000 r14=0000000000000000 r15=0000000000000000 iopl=0 nv up ei pl zr na po nc dxgmms2!RemoveHeadList+0xd [inlined in dxgmms2!VidSchiSignalRegisteredSyncObjects+0x3f]: fffff800`2b7f8933 48395808 cmp qword ptr [rax+8],rbx ds:003f8b81`3f20b6e8=????????????????
使用 !vm 命令檢查內存使用情況,例如,查看正在使用的內核堆棧內存量。
0: kd> !vm Physical Memory: 1541186 ( 6164744 Kb) Available Pages: 470550 ( 1882200 Kb) ResAvail Pages: 1279680 ( 5118720 Kb) ... Kernel Stacks: 13686 ( 54744 Kb)
在此示例中,使用的內存量較少。
使用 !thread 命令收集有關正在運行的內容的信息。 在此示例中,它看起來像一個視頻計劃程序工作線程正在運行。
2: kd> !thread THREAD ffffcb816348b040 Cid 0c58.4a1c Teb: 0000000000000000 Win32Thread: 0000000000000000 RUNNING on processor 2 Not impersonating DeviceMap ffff840f38c04170 Owning Process ffffcb81648980c0 Image: YourPhone.exe Attached Process N/A Image: N/A Wait Start TickCount 34501403 Ticks: 0 Context Switch Count 43 IdealProcessor: 3 UserTime 00:00:00.000 KernelTime 00:00:00.015 Win32 Start Address 0x00007fff34656d00 Stack Init ffffdc0e9ee675b0 Current ffffdc0e9ee66610 Base ffffdc0e9ee68000 Limit ffffdc0e9ee61000 Call 0000000000000000 Priority 8 BasePriority 8 PriorityDecrement 0 IoPriority 2 PagePriority 5 ...
然后使用 kb (顯示堆棧回溯) 和 f 選項顯示堆棧和內存使用情況,以查看是否存在較大的內存用戶。
2: kd> kf ... 02 40 ffffdc0e`9ee66850 fffff800`2b7f8801 dxgmms2!VidSchiMarkDeviceAsError+0x4d ...
如果代碼的特定部分看起來可疑,請使用 u、ub、uu (Unassemble) 命令檢查關聯的匯編語言代碼。
2: kd> u ffffdc0e`9ee66850 l10 ffffdc0e`9ee66850 1030 adc byte ptr [rax],dh ffffdc0e`9ee66852 1c51 sbb al,51h ffffdc0e`9ee66854 81cbffffc068 or ebx,68C0FFFFh ffffdc0e`9ee6685a e69e out 9Eh,al ffffdc0e`9ee6685c 0e ??? ffffdc0e`9ee6685d dcff fdiv st(7),st ffffdc0e`9ee6685f ff00 inc dword ptr [rax] ffffdc0e`9ee66861 0000 add byte ptr [rax],al ffffdc0e`9ee66863 0000 add byte ptr [rax],al ffffdc0e`9ee66865 0000 add byte ptr [rax],al ffffdc0e`9ee66867 000e add byte ptr [rsi],cl ffffdc0e`9ee66869 0000 add byte ptr [rax],al ffffdc0e`9ee6686b 0000 add byte ptr [rax],al ffffdc0e`9ee6686d 0000 add byte ptr [rax],al ffffdc0e`9ee6686f 0010 add byte ptr [rax],dl ffffdc0e`9ee66871 301c51 xor byte ptr [rcx+rdx*2],bl
使用 .cxr (顯示上下文記錄) 命令,使用 !analyze 提供的參數 3 值顯示上下文記錄。
2: kd> .cxr ffffe301c8db2900 rax=003f8b813f20b6e0 rbx=ffffcb813f607650 rcx=ee7defdd9c530000 rdx=ffffcb81660ea078 rsi=0000000000000000 rdi=ffffcb81511c30a8 rip=fffff8002b7f8933 rsp=ffffdc0e9ee66810 rbp=ffffcb81511c3010 r8=0000000000000001 r9=0000000000004014 r10=ffffdc0e9ee66910 r11=0000000000000000 r12=ffffdc0e9ee66910 r13=ffffcb814019c000 r14=0000000000000000 r15=ffffdc0e9ee66910 iopl=0 nv up ei pl zr na po nc cs=0010 ss=0018 ds=002b es=002b fs=0053 gs=002b efl=00050246 dxgmms2!RemoveHeadList+0xd [inlined in dxgmms2!VidSchiSignalRegisteredSyncObjects+0x3f]: fffff800`2b7f8933 48395808 cmp qword ptr [rax+8],rbx ds:002b:003f8b81`3f20b6e8=????????????????
使用 .exr (顯示異常記錄) 命令,使用 !analyze 提供的參數 4 值顯示異常記錄。
2: kd> .exr ffffdc0e9ee665d8 ExceptionAddress: fffff8002b7f8933 (dxgmms2!RemoveHeadList+0x000000000000000d) ExceptionCode: c0000005 (Access violation) ExceptionFlags: 00000000 NumberParameters: 2 Parameter[0]: 0000000000000000 Parameter[1]: ffffffffffffffff Attempt to read from address ffffffffffffffff
異常記錄指示嘗試讀取 和 地址ffffffffffffffff,這將是一個需要進一步調查的區域。
另請參閱
Bug 檢查代碼參考