• 关于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

  • 相关阅读:
    ASP学习笔记
    Access restriction: The type 'BASE64Encoder'
    hdu2094:产生冠军(判断有环图)
    hdu1533:Going Home(KM匹配)
    hdu2112:HDU Today(最短路)
    hdu2112:HDU Today(最短路)
    hdu2813:One fihgt one(KM匹配)
    hdu2813:One fihgt one(KM匹配)
    hdu2236:无题II(枚举+匈牙利算法)
    hdu2236:无题II(枚举+匈牙利算法)
  • 原文地址:https://www.cnblogs.com/yilang/p/12603334.html
Copyright © 2020-2023  润新知