问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

unix系统中,当程序访问非法内存地址会触发什么错误

发布网友 发布时间:2022-04-14 00:10

我来回答

2个回答

热心网友 时间:2022-04-14 01:40

一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。1、微软IE缓冲溢出漏洞引起2、内存或虚拟内存地址使用冲突造成程序的运行需要分配一定的内存地址给程序使用,当程序结束时释放留出空间让给新的程序使用,win是多任务的系统有时前程序未结束 又有新的任务开始到底要多少内存或虚拟内存来保证我们同时运行的工作任务呢?也许win在这个问题上没弄好,所以有此错误常常发生,一般运行大型软件或多媒体后出现这种情况3、劣质内存条也会出现这个问题一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个不同牌子不同容量的内存混插,也比较容易出现不兼容的情况,同时还要注意散热问题,特别是超频后。你可以使用MemTest这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。假如你是双内存,而且是不同品牌的内存条混插或者买了二手内存时,出现这个问题,这时,你就要检查是不是内存出问题了或者和其它硬件不兼容。4、微软WINDOWS系统的漏洞,windows把内存地址0X00000000到0X0000ffff指定为分配null指针的地址范围,如果程序试图访问这一地址,则认为是错误。c/c++编写的程序通常不进行严格的错误检查,当采用malloc来分配内存而可供分配的地址空间不够的情况下返回null指针。但是代码不检查这种错误,认为地址分配已经成功,于是就访问0X00000000的地址,于是就发生内存违规访问,同时该进程被终止。ASCII字符填充组成的pif文件时会出现以下情况:一个非法的pif文件(用ascii字符''x''填充)至少要369字节,系统才认为是一个合法的pif文件,才会以pif的图标[pifmgr.dll,0]显示,才会在属性里有程序、字体、内存、屏幕”等内容。而且仅仅当一个非pif文件的大小是369字节时察看属性的“程序”页时,不会发生程序错误,哪怕是370字节也不行。当对一个大于369字节的非法pif文件察看属性的“程序”页时,Explorer会出错,提示:''***''指令引用的''***''内存。该内存不能为''read'' ,问题出在pif文件的16进制地址:0x00000181[0x87]0x00000182[0x01]和 0x00000231[0xC3]0x00000232[0x02]即使是一个合法pif文件,只要改动这四处的任意一处,也会引起程序错误。而只要把0x00000181和0x00000182的值改为[0xFF][0xFF],那么其它地址任意更改都不会引起错误。5、可能没有完全正确安装apache服务,且启动了它的原故; 把服务中OracleOraHomeXXHTTPServer改成停 止6、应用程序没有检查内存分配失败程序需要一块内存用以保存数据时,就需要调用操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“指针”。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的指针,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用指针,继续在之后的运行中使用这块内存。真正的0地址内存区保存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即死机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的“写内存”错误,并指出被引用的内存地址为“0x00000000”。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统文件之后。7、应用程序由于自身BUG引用了不正常的内存指针在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的指针已经失效了。有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止运行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效指针不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其他随机数字。望采纳。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
立秋后钓鱼什么风向好-立秋钓鱼风向怎么选 赱乂砉込儬 怎么读 "赱"读什么? 解决电脑无法搜索到iPhone热点的问题如何修复iPhone热点无法在电脑上显... 电脑搜不到iphone12热点 iphone开热点给电脑搜不到 国企的地产有哪些 国企下设公司是什么意思? 红加蓝加绿是什么色. 梦幻西游75级开三倍抓鬼一轮有多少经验 计算机储存介质的发展史 我存在腾讯管家里的图片不见了 电脑CPU和内存的发展 手机管家照片搬家。之后照片在内存卡哪个地方? 介绍下计算机 内存条 的技术发展 关于国内计算机内存和主板最新发展情况,最好详细一些,有没有大神呀,救救孩子吧,啊!!! 苹果手机手机管家加密的照片在那里? 大家好,我投资基金,是初学者,对于基金行情,我想问下各位高手还有关于基金行情的在线查询软件啊?谢谢 谁知道内存的发展史? 意难忘第一部方丽珠和王胜天结婚是多少集 《意难忘》裏的欣欣是第一部哪一集出现的? 意难忘分集介绍? 求电影《青蛇》的影评,谢谢!! 《白蛇传说》的观后感或内容简介 百家讲坛有一期是讲白蛇传的,谁能帮我写这一期的观后感,700多字左右 白蛇传说影评。 关于QQ号被盗的问题 我爸爸的QQ号被盗了,怎么办? 怎么去除头皮屑?? 液晶显示器1.5A是多少瓦? 计算机行业最近发展情况 关于广州注册资金认缴制 广州从3月开始的公司注册新规定是什么内容?认缴资金要不要实际注资呢?公司责任怎么承担? 办理健康证抽血报告可以看到是否怀孕吗 工作办健康证能查出来怀孕吗 办健康证检查什么能不能见查出怀孕啊 办健康证可不可以查出怀孕了 我们这要办健康证抽血会验出怀孕吗? 办健康证抽血会化验出怀孕吗? 办健康证抽血能查出怀孕吗 体检验血能查出怀孕吗?怀孕三个月了能拿到健康证吗?健康证上面会不会注明已怀孕? 办健康证的时候查的出怀孕吗??急!!! 办健康证真的不会查出怀孕吗? 办健康证可能查出怀孕吗 vivox21可以敲击截屏吗 苹果4a1332是什么版本价格多少 苹果型号A1332,目前值多少钱?多少万像素? 苹果型号A1332CMlTlD:2010CJ3612是多少G多少钱? 苹果a431是什么型号 谁能告诉我白羊座的男生和女生有哪些不同?