關於STATUS_WX86_BREAKPOINT(0x4000001F)異常


簡介

STATUS_WX86_BREAKPOINT,值為0x4000001F,稱為中斷指令異常,表示在系統未附加內核調試器時遇到斷點或斷言。其定義如下:

/
// MessageId: STATUS_WX86_BREAKPOINT
//
// MessageText:
//
// Exception status code used by Win32 x86 emulation subsystem.
//
#define STATUS_WX86_BREAKPOINT           ((NTSTATUS)0x4000001FL)

說明

當斷點(int 3)異常來自在WOW64模式下執行的代碼(64位Windows中的32位代碼)時,64位調試器確實獲得了狀態WX86。從64位代碼中斷點時-狀態中斷點。同樣,在單步異常中,如果此異常來自64位代碼,64位調試器將獲得STATUS_single_step;如果異常來自WOW64代碼,則獲得STATUS_WX86_single_step。

可以像處理STATUS_BREAKPOINT(0x80000003)一樣處理它。WX86提供了從哪個模式(WOW64或本機)中斷的附加信息。但在這兩種情況下,這都是斷點異常。以及如何處理它的邏輯。但是,這是您的選擇,決定如何處理斷點、單步或其他異常。

還要注意,STATUS_WX86_BREAKPOINT和STATUS_WX86_SINGLE_STEP只得到64位調試器。32位調試器始終獲取狀態斷點,64位調試器獲取狀態斷點,而x64調試器獲取狀態斷點時不獲取任何信息。例如,在WOW64進程啟動時-64位調試器獲取了2個斷點-第一個狀態斷點來自64位模式(在64位ntdll.LdrpDoDebugBreak中),然后是狀態斷點來自32位ntdll.LdrpDoDebugBreak。而32位調試器只有第二個斷點(來自32位代碼)具有狀態斷點。

異常結構填充

ExceptionAddress: 03264043 (libcef!GetHandleVerifier+0x00845ba3)
ExceptionCode: 4000001f (WOW64 breakpoint)
ExceptionFlags: 00000001
NumberParameters: 1
   Parameter[0]: 00000000


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM