程序出现内存不能为read,请问怎么定位错误?

祏芯沐仁 2010-06-20 11:44:20
出现“unhandled exception in ****(MFC42D.DLL):0xC0000005: Access Violation.”
程序停在“cmp dword ptr [eax+4],0”
指令引用的“0x00000004”内存。该内存不能为“read”。
...全文
161 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 xslinson 的回复:]
我是想知道有没有什么方法能在遇到类似的问题时能定位到出现问题的地方?有谁知道?
[/Quote]
不是告诉你去看调用堆栈么
祏芯沐仁 2010-06-22
  • 打赏
  • 举报
回复
我是想知道有没有什么方法能在遇到类似的问题时能定位到出现问题的地方?有谁知道?
ForestDB 2010-06-21
  • 打赏
  • 举报
回复
顶了。
herman~~ 2010-06-21
  • 打赏
  • 举报
回复
要加入生成dump文件的机制,然后调试dump文件了
philipzeng 2010-06-21
  • 打赏
  • 举报
回复
原来你有答&案了。
赵4老师 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xianglitian 的回复:]
断下来后看调用堆栈
[/Quote]
正解
liuyang1943 2010-06-21
  • 打赏
  • 举报
回复
0x00000004?这个位置应该是引导系统的保存地址吧。。。出了开机时理论上你不可能需要访问的,可能是申请的野指针指过来了吧。
向立天 2010-06-21
  • 打赏
  • 举报
回复
断下来后看调用堆栈
东莞某某某 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xslinson 的回复:]

原来是没画图时没有ReleaseDC!
[/Quote]
要注意及时释放
davelv 2010-06-21
  • 打赏
  • 举报
回复
基址指针,上面写错了
davelv 2010-06-21
  • 打赏
  • 举报
回复
应该是基地指针没有初始化造成的。
bitxinhai 2010-06-21
  • 打赏
  • 举报
回复
看提示应该是访问无效的野指针了
可以仔细的检查一下
x_todoo 2010-06-21
  • 打赏
  • 举报
回复
一般这个都是因为内存的原因导致
祏芯沐仁 2010-06-21
  • 打赏
  • 举报
回复
原来是没画图时没有ReleaseDC!
maoxing63570 2010-06-21
  • 打赏
  • 举报
回复
指针没有初始化,但是你尝试访问了指针中存方的东西了。
djjlove_2008 2010-06-20
  • 打赏
  • 举报
回复
这个还是指针的错误、这个东西我也碰到过,后来不知道怎么改过来的,指针是个好东西,同时也是个老火的玩意,呵呵。
keven1868 2010-06-20
  • 打赏
  • 举报
回复
用windbg调试运行吧,准备好符号
pengzhixi 2010-06-20
  • 打赏
  • 举报
回复
访问了初始化为0的指针吧
祏芯沐仁 2010-06-20
  • 打赏
  • 举报
回复
程序跑很久才出现错误啊,单步的话,不知道什么时候才会出现。。。
chaoliu1024 2010-06-20
  • 打赏
  • 举报
回复
单步跟踪下,可以看到错误的。。。
经常使用电脑可能也遇到过了! 突然‘咚’的一声 提示 内存不能read 这个问题我以前也遇到过不知道怎么解决 现在终于有办法了!呵呵! 我们就看看是什么原因引起的吧,另外附送一个小工具修复见下面附件 总结下大概以下9个原因 1、驱动不稳定,与系统不兼容,这最容易出现内存不能Read 或者文件保护(主要原因) 2、系统安装了一个或者多个流氓软件,这出现 IE 或者系统崩溃的机会也比较大,也有可能出现文件保护 3、系统加载的程序或者系统正在运行的程序之前有冲突,尤其是部分杀毒软件监控程序 4、系统本身存在漏洞,导致容易受到网络攻击。 5、病毒问题也是主要导致内存不能Read、文件保护、Explorer.exe 错误…… 6、如果在玩游戏时候出现内存不能Read,则很大可能是显卡驱动不适合(这里的不适合有不适合该游戏、不适合电脑的显卡)也有可能是 系统版本不够新或者不符合该游戏、显卡驱动 7、部分软件本身自身不足的问题 8、电脑硬件过热,也是导致内存不能Read 的原因之一。 9、电脑内存与主板兼容性不好也是导致内存不能Read 的致命原因! 以上大概就是目前可以引起系统提示 内存不能read的原因了 另外软件是针对只是针对部分原因引起的内存不为read所做修复,不是100%有效,大家可以试试看 说下原理: 就是批处理使用 regsvr32命令 将动态链接库文件重新注册 (system32下的所有 .dll 和 .ocx 文件;) 注意:由于修复工具会重新注册 system32下的所有 .dll 和 .ocx 文件 此操作对杀毒软件来说属于敏感操作,所以建议使用修复工具的时候,请禁用杀毒软件,以免部分杀毒误报!jie

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧