当前位置:七道奇文章资讯安全技术操作系统
日期:2012-06-27 12:19:00  来源:本站整理

办理内存不能为"read"指令00000000*0的问题[操作系统]

赞助商链接



  本文“办理内存不能为"read"指令00000000*0的问题[操作系统]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

内存不能为"read"指令00000000*0问题,安全黑客基地本日会具体的为大家介绍下,大家有没有在操作历程看到这样的情形,“0x????????”指令引用的“0x????????”内存.该内存不能为“read”.
  
呈现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了. 
一:先说说硬件:  普通来说,电脑硬件是很不简单坏的.内存呈现问题的大概性并不大(除非你的内存真的是杂牌的一塌徒地),主要方面是:
 
1.内存条坏了(二手内存情形占多数)、
2.利用了有质量问题的内存,
3.内存插在主板上的金手指部份尘埃太多.
4.利用差别品牌差别容量的内存,从而呈现不兼容的情形.
5.超频带来的散热问题.你可以利用MemTest这个软件来检测一下内存,它可以完好的检测出内存的安定度. 
 
2、假如都没有,那就从软件方面解除弊端了. 
先说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需求操作系统供应的“功效函数”来申请,假如内存分配成功,函数就会将所新开辟的内存区地址返回给利用程序,利用程序便可以通过这个地址利用这块内存.  www.110hack.com
这就是“动态内存分配”,内存地址也就是编程中的“光标”.内存不是永久都招之即来、用之不尽的,有时刻内存分配也会失利.当分配失利时系统函数会返回一个0值,这时返回值“0”已不表示新启用的光标,而是系统向利用程序发出的一个告诉,奉告呈现了错误.
作为利用程序,在每一次申请内存后都应当查抄返回值能否为0,假如是,则意味着呈现了弊端,应当采纳一些办法解救,这就加强了程序的“结实性”.
 
若利用程序没有查抄这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用光标,持续在之后的履行中利用这块内存.真正的0地址内存区储存的是计算机系统中最重要的“中止描写符表”,绝对不答应利用程序利用.在没有保护机制的操作系统下(如DOS),写数据到这个地址会招致当即当机,而在结实的操作系统中,如Windows等,这个操作会即刻被系统的保护机制捕捉,后来果就是由操作系统强行关闭出错的利用程序,以避免其错误扩大.
这时刻,就会呈现上述的内存不能为“read”错误,并指出被引用的内存地址为“0x00000000“.内存分配失利弊端的缘由很多,内存不够、系统函数的版本不匹配等都大概有影响.因此,这种分配失利多见于操作系统利用很长时间后,安装了多种利用程序(包含无意中“安装”的病毒程序),更改了大量的系统参数和系统档案之后. 
在利用动态分配的利用程序中,有时会有这样的情形呈现:程序试图读写一块“应当可用”的内存,但不知为什么,这个预猜中可用的光标已经失效了.有大概是“忘掉了”向操作系统要求分配,也大概是程序自己在某个时刻已经注销了这块内存而“没有留神”等等.注销了的内存被系统回收,其拜候权已经不属于该利用程序,因此读写操作也一样会触发系统的保护机制,计划“违法”的程序唯一的下场就是被操作终止履行,回收全部资源.计算机世界的法律还是要比人类有效和严峻得多啊!像这样的情形都属于程序自身的BUG,你常常可在特定的操作次序下重现错误.
 
无效光标不一定老是  www.110hack.com
0,因此错误提醒中的内存地址也不一定为“0x00000000”,而是别的随机数字. 
首先倡议: 
1、查抄系统中能否有木马或病毒?  >
2、更新操作系统,让操作系统的安装程序重新拷贝精确版本的系统档案、改正系统参数.有时刻操作系统本身也会有BUG,要注意安装官方发行的进级程序. 
3、尽大概利用最新正式版本的利用程序、Beta版、试用版城市有BUG. 
 
4、删除然后重新成立WinntSystem32WbemRepository文件夹中的文件:在桌面上右击我的电脑,然后单击管理.在"服务和利用程序"下,单击服务,然后关闭并终止WindowsManagementInstrumentation服务.删除WinntSystem32WbemRepository文件夹中的全部文件.(在删除前请成立这些文件的备份副本.)翻开"服务和利用程序",单击服务,然后翻开并启动WindowsManagementInstrumentation服务.
当服务重新启动时,将基于以下注册表项中所供应的信息重新成立这些文件:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWBEMCIMOMAutorecoverMOFs


  以上是“办理内存不能为"read"指令00000000*0的问题[操作系统]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 办理内存不能为"read"指令00000000*0的问题
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        100%(1)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .