VC 内存错误码整理

  经常碰到一些错误码,但不能清楚是什么意思不便于发现原因。所以参考网上资料做了下整理。

0x0000007d:表示没有足够的内存来启动Microsoft Windows操作系统。这个是 系统停止码 ,不属于VC内存错误码,只是某些情况下也会弹出这些停止码,特别是发布程序时。
这篇博客提到了一个可能原因和解决办法:http://blog.csdn.net/vbcom/article/details/6070705 。
另外 如果想了解更多错误码可以参考该网站:http://www.errordecoder.com/error-codes/ 。

0xabababab - Memory following a block allocated by LocalAlloc(局部变量内存块)。微软 HeapAlloc()用于标记已分配的对内存前后 "没有使用"的内存块。

0xABADCAFE:启动此值初始化所有的可用内存来捕捉出错的指针。

0xBAADF00D:微软的LocalAlloc的(LMEM_FIXED)用于标记未初始化分配的堆内存。

0xBADCAB1E:当Microsoft EVC调试器连接被中断时返回的错误码。

0xBEEFCACE:微软NET中作为一个资源文件的幻数。

0xC0000005 访问冲突 :可能是数组越界,访问已经释放的空间。

0xC0000008:无效的句柄。

0xBAADF00D - HeapAlloc分配的内存。

0xcccccccc - Uninitialized locals in VC6 when you compile w/ /GZ(当编译时没有初始化的局部变量,主要是DEBUG下面,系统会给没有用到的内存块填充 int 3.Release版本不会填充)。微软C++运行库用于标记未初始化的栈内存。
 在VC Debug版本里,栈中分配的值都会先用0xCCCCCCCC来处理一下,所以大家在Debug模式下调试程序发现在引用0xCCCCCCCC这样的值,就说明在试图使用一个没有初始化的值。这就是在Debug模式下调试的好处之一,如果在Release模式下,系统就不会用0xCCCCCCCC来处理一下了。至于为什么选择0xCCCCCCCC大概是因为 端点中断int 3 对应的机器码就是0xCC吧,我也不是很有把握。用固定的地址是可以访问指针所指向的数据的。但是在一般情况下,Windows可能会报非法操作。
DEBUG版本为了能让程序员更早的发现错误,把堆栈上的数据对初始化成了0xcc,也就是说局部变量如果不初始化,那么DEBUG版本中就会是0xCC。
       在给一个指针对象传值时,没有用取地址符&,直接把对象写在代码那,也可能报这个错误。
可以认为0x0cc就是有特殊含义的占位符,对于指针而言,它跟NULL是一个意思。

0xCDCDCDCD:Created but not initialised()定义但未初始化。微软C++运行库用于标记未初始化的堆内存。

0xdddddddd - 已删除的对象。Deleted(已删除的,CRT中称处于这种状态的内存区为 Dead Land。同时边界DWORD也同时被清除。)

0xDEADDEAD:当用户手动启动崩溃时的微软Windows停止错误码。

0xfdfdfdfd - 微软用于标记堆的前后无人使用的标识符。

0xfeeefeee - Freed memory set by NT's heap manager堆管理器释放的内存区域。由HeapFree()释放的堆内存。


另外  dbgheap.c 文件与这些错误码 有关。可以参照阅读。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本文件中包含了DirectX修复工具中一些常见问题及其解答,如您存在问题,请首先查看以下解答是否能解决您的问题。 This file includes some frequently asked questions and answers about DirectX Repair. If you have any problems with the programme, please check first if there are answers below (English translation is at bottom). Thank you. 问题1:XP系统上运行软件时出现0xc0000135的错误,怎么回事? 答:Windows XP SP3系统用户需先安装Microsoft .NET Framework 2.0或更高版本才可运行本程序,详情请见“致Windows XP用户.txt”文件。 问题2:文件夹里为什么有两个“DirectX Repair”程序,他们有什么区别? 答:“DirectX Repair.exe”为通用版程序,可以兼容Windows XP(需先安装.NET 2.0,详情请参阅“致Windows XP用户.txt”文件)、Windows Vista、Windows 7、Windows 8(需要先按系统提示开启.NET 3.5)、Windows 8.1(需要先按系统提示开启.NET 3.5)、Windows 10(需要先按系统提示开启.NET 3.5);“DirectX_Repair_win8_win10.exe”为特别版程序(基于.NET 4.0开发),可以在Windows 8和Windows 10系统上直接运行。这两个程序的功能完全相同。 问题3:我下载的是标准版或是在线修复版,怎么将程序升级成增强版? 答:首先来说,各个版本之间,主程序(即exe文件)完全相同,标准版与增强版相比,只是缺少相应的扩展数据包,因此无法进行增强式修复(即修复c++)。因此,可以通过补全扩展包的形式使标准版直接成为增强版。本程序自V3.5版起,自带扩展功能。只要在主界面的“工具”菜单下打开“选项”对话框,找到“扩展”标签,点击其中的“开始扩展”按钮即可。扩展过程需要Internet连接,扩展成功后新的数据包可立即生效。扩展用时根据网络速度不同而不同,最快仅需数秒,最慢需要数分钟,烦请耐心等待。 问题4:我从某些网站下载的就是增强版,为什么弹出更新c++对话框时显示c++ 2015 Redistributable Package的条目是灰色的并且不能修复?或是我从日志文件看修复后c++ 2015的状态仍是“-”? 答:这是由于某些网站有上传文件大小的限制,如果超过限制则无法上传。由于c++数据包占用空间较大,为了满足这些网站的上传要求,因此上传的程序扩展包中未包含c++ 2015。无需担心,此时只需按照上面“问题3”的方法进行扩展,成功后程序即可成为完整增强版。备注:此问题只是以c++ 2015为例,如果其他c++组件(如c++ 2005,c++ 2008,c++ 2010,c++2012,c++2013,c++2017)呈现问题中描述的状态,均按照此方法进行扩展即可。 问题5:我在有的电脑上使用标准版或在线修复版修复DirectX后,程序弹出c++组件仍异常的提示,让我使用增强版再修复;而在有些其他电脑上使用标准版修复完成后,却没有这个提示(此时我感觉c++仍有问题)。这是什么原因? 答:本程序致力于解决0xc000007b错误,因此只有在程序检测到系统中c++存在异常,可能导致0xc000007b问题,而修复时又没有使用增强版修复相应c++时,才会弹出此提示。而对于那些根本没有安装c++的系统,程序则不会提示。理论上讲,本程序完全可以解决c++未安装所带来的任何错误(如提示缺少msvcr140.dll文件等),但之所以程序在这些系统上不做任何提示,是考虑到绝大部分电脑都会缺失c++组件,如果均进行提示,则此提示将变成必出现的提示,所有用户都需要使用增强版进行再次修复,失去了标准版存在的意义。 问题6:部分文件修复失败怎么办? 答:可以以安全模式引导系统(具体方法百度可查),然后再用本程序进行修复即可成功。 问题7:全部文件的状态都是下载失败或失败,这是怎么回事? 答:在极个别的电脑上,由于系统核心组件异常,导致程序在检测时无法调用系统组件而产生此问题。此时请在程序的“工具”菜单下“选项”对话框中,将“安全级别”改为“低”即可。更改后再进行修复即可正确完成相关操作。 问题8:该软件能支持64位操作系统吗? 答:能。程序在编程时已经充分考虑了不同系统的特性,可以完美支持64位操作系统。并且,程序有自适应功能,可以自动检测操作系统版本、位数,无需用户进行设置。 问题9:玩游戏出现闪退、黑屏、卡屏、卡死、帧数低、打太极等问题,修复后仍不能解决? 答:该问题的可能原因较多,比如DirectX有问题,c++有问题。使用DirectX修复工具增强版即可解决由这两种情况所导致的问题。如果修复后仍不能解决,则可能有三种原因:第一,游戏有问题(或破解补丁有问题),建议从别的网站上重新下载;第二,显卡驱动没装好(这种情况较多),建议重装显卡驱动;第三,硬件配置不够。 问题10:出现DirectDraw、Direct3D、AGP纹理加速不可用,修复后仍不能解决? 答:本程序的V3.2版本之后新增了一个开启该加速的功能,请先尝试使用该功能进行修复。如果修复后仍不能解决,则通常是由于显卡驱动有问题造成的,建议到显卡官网下载最新驱动安装即可。 问题11:本程序是只能修复C盘中的DirectX吗?其他盘中的如何修复? 答:本程序不是只能修复C盘中的DirectX,而是修复当前系统所在磁盘的DirectX。如果您的操作系统安装在了C盘,则程序会修复C盘中的DirectX,如果您的操作系统安装在了D盘,则程序会修复D盘中的DirectX,其他以此类推。如果您的系统中有多个操作系统,则修复只能针对当前运行的操作系统,无法修复其他操作系统。因为未运行的操作系统程序无法检测其完整性,因此也就无法修复。如果您想修复计算机中的多个操作系统,请分别用这些操作系统启动,然后再调用本程序进行修复即可。 问题12:网上有人说修复某某软件的错误时最好用本程序的V1.2版或者V2.1版,不要用本程序的最新版本,这是怎么回事? 答:作为软件作者,我可以很负责并且很权威的告诉你,新版本的程序一定比旧版本更好用。旧版本能解决的问题新版本也一定能解决,旧版本解决不了的问题,新版本也可能能解决。因此不要在意网上的这些说法,作者建议所有用户都使用本程序的最新版本。 问题13:该软件包含的DirectX是什么版本的? 答:本软件集成了最新版的DirectX Redist(Jun2010),其中包含DirectX 9.0、DirectX 10.0、DirectX 10.1以及DirectX 11的全部文件,部分DirectX12的文件,程序会根据您的系统自动修复需要修复的文件,无需用户进行设置。所有的DX组件都有微软的数字签名,请放心。 问题14:我的Windows 7用的是DirectX 11,该软件可以修复吗? 答:可以。如上问所说,软件中包含了DirectX 11的文件。 问题15:我的游戏运行时出现0xc000007b错误,能用本软件修复吗? 答:能。详情请参考:http://blog.csdn.net/vbcom/article/details/6070705 问题16:我的游戏运行时出现某某内存(0xcxxxxxxxx)不能为Read或Written,能用本软件修复吗? 答:不一定能解决问题。因为造成这个问题的可能原因很多,比如软件有问题,没有安装c++、系统有问题、显卡驱动没装好等等。建议到网上搜索有关此问题的对应解决办法,如果条件允许的话,重装电脑可以解决此问题。 问题17:玩游戏时显示需要安装DirectX8.1或以上版本,可我已经装了,并用本程序修复过了,为什么还是不行? 答:魔兽出现这个问题的概率较高。该问题是由于显卡驱动有问题造成的,建议重装显卡驱动。 问题18:为什么经本软件检测修复后游戏仍不能运行? 答:如果使用了本软件进行修复,请确保您的游戏目录下没有自行拷贝的dll文件。若您之前自己从网上下载过dll文件并拷贝到系统,请将它们全部删除后再用本软件进行修复。同时,造成软件、游戏不能运行的原因还有很多,如果确认DirectX已经没有问题,请参考:http://blog.csdn.net/vbcom/article/details/6218535 问题19:修复失败会对我的系统有什么影响吗? 答:本程序只是一个工具软件,不会对系统有任何影响,请放心。 问题20:360安全卫士提示我说程序有可疑行为这是怎么回事? 答:由于DirectX组件存在于系统文件夹内,本程序修复时需要修改系统文件夹中的相关内容,因此修复时360可能会进行提示。请选择允许操作以便本程序能够进行修复。请各位用户放心,本程序不会对系统造成破坏。如果您很在意这个提示并且不信任本程序的话,请不要用本程序进行修复,直接删除本程序即可。 问题21:程序中的DirectX 诊断工具是怎么回事? 答:该功能是调用了系统自带的DirectX诊断工具,该工具可以检测诸如系统支持的最高DirectX版本等基本信息,并且可以检测软件、硬件以及驱动是否存在问题。检测的信息可以有助于修复您的问题。如果您对这些信息不甚了解,则可忽略本功能。 问题22:日志文件是怎么回事? 答:日志文件可以记录您的检测与修复结果,这样在出现问题时可以及时分析查找原因。日志记录功能默认开启,建议您不要关闭,也不要更改模式。 问题23:怎么查看日志文件? 答:点击本程序“文件”菜单中的“查看日志文件”按钮即可查看日志文件。 问题24:用户反馈是什么意思? 答:您可以在用户反馈程序中发送反馈信息给软件作者。您可以点击程序的“帮助”菜单中的“用户反馈”按钮启动反馈程序。如果本程序成功解决您的问题,您可以发送反馈告知作者以便有所参考;如果本程序没有解决您的问题,您也可以发送反馈告知作者以便共同解决问题。 问题25:如何和软件作者进行交流? 答:您可以通过反馈程序与作者交流。如果反馈程序遇到网络繁忙无法使用时您也可以通过E-mail与作者交流。E-mail地址请参考程序的“帮助”菜单中的“关于”按钮。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值