这主要是出于好奇,但在调试时,我经常看到这样的一行:
MyApp.exe 中 0x7583812f 处的第一次机会异常:Microsoft C++ 异常:内存位置 0x039be09c 处的 CTBadSupportFileException。
我想知道,为什么它被称为“Microsoft”C++ 异常?
这真的是一个普通的 C++ 异常吗?它派生于什么类? “Microsoft C++ 异常”是异常的类型,还是 CTBadSupportFileException 等异常的父类型?
为什么调试器会这样记录它们?
这不是“Microsoft”C++ 例外。这是一个“Microsoft C++”例外。
当引发操作系统异常时RaiseException
函数中,调用者指定一个异常代码。有一些标准异常代码,例如堆栈溢出的 0xC00000FD 或访问冲突的 0xC0000005。但您也可以引发自定义异常代码,Microsoft C++ 工具链对所有 C++ 异常使用的自定义异常代码是 0xE06d7363。
请注意,操作系统异常和 C++ 异常是不同的概念。调试器中的消息正在谈论操作系统异常。
调试器正在为您提供帮助,而不是报告“异常 0xE06d7363”,而是显示“Microsoft C++ 异常”,甚至还采取了额外的步骤:解码其参数为你。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)