小编Win*_*ton的帖子

WinDbg中的"Break指令异常"是什么?

我正在调试一些随机的崩溃错误,但实际上很难深入研究.因为当我打开崩溃转储时,只发现一个错误:

0:000> .exr -1
ExceptionAddress: 00000000
   ExceptionCode: 80000003 (Break instruction exception)
  ExceptionFlags: 00000000
NumberParameters: 0
Run Code Online (Sandbox Code Playgroud)

实际上我没有在代码中设置任何硬代码断点,所以我在google中搜索这个异常,有人说这个异常可能是由于堆损坏引起的.所以我的问题是,是否有任何其他原因导致此异常,除了硬编码断点,调试时手动断点,堆损坏?

另一个问题是,我尝试使用Application Verifier来检查堆损坏,我理解它是如何工作的,app验证器将在堆损坏时触发中断指令异常.但是目前,我在没有app验证程序的情况下运行,谁会提出中断指令异常?

附加信息:当前线程的调用堆栈.

*0:000> k
ChildEBP RetAddr  
0012f96c 7c827d19 ntdll!KiFastSystemCallRet
0012f970 77e6202c ntdll!NtWaitForMultipleObjects+0xc
0012fa18 7739bbd1 kernel32!WaitForMultipleObjectsEx+0x11a
0012fa74 3b288523 user32!RealMsgWaitForMultipleObjectsEx+0x141
0012fab8 3b32b9bd msenv!EnvironmentMsgLoop+0x1ea
0012fae4 3b32b94d msenv!CMsoCMHandler::FPushMessageLoop+0x86
0012fb0c 3b32b8e9 msenv!SCM::FPushMessageLoop+0xb7
0012fb28 3b32b8b8 msenv!SCM_MsoCompMgr::FPushMessageLoop+0x28
0012fb48 3b32be4e msenv!CMsoComponent::PushMsgLoop+0x28
0012fbe0 3b327561 msenv!VStudioMainLogged+0x482
0012fc0c 3000a4a6 msenv!VStudioMain+0xc1
0012fc38 30007301 devenv!util_CallVsMain+0xff
0012ff14 3000760c devenv!CDevEnvAppId::Run+0x91f
0012ff30 30007680 devenv!WinMain+0x74
0012ffc0 77e6f23b devenv!License::GetPID+0x258
0012fff0 00000000 kernel32!BaseProcessStart+0x23*
Run Code Online (Sandbox Code Playgroud)

我们的应用程序是Visual Studio包.

以下是!analyze -v的结果

0:000> !analyze -v
*******************************************************************************
* …
Run Code Online (Sandbox Code Playgroud)

windows heap windbg breakpoints corruption

15
推荐指数
1
解决办法
3万
查看次数

标签 统计

breakpoints ×1

corruption ×1

heap ×1

windbg ×1

windows ×1