内存条有问题经常死机问题!!!!

2016年10月优秀大版主2016年8月优秀大版主
2016年9月 总版技术专家分月排行榜第二
2016年10月优秀大版主2016年8月优秀大版主
2016年9月 总版技术专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。查看: 2551|回复: 14
分享一下关于个别内存槽不认内存问题
下载分261 分
原创币0 点
下载次数17 次
上传次数10 次
主题帖子积分
会员等级:
初学乍练, 积分 28, 距离下一级还需 2 积分
这里不算是技术帖,算是一种经验的尝试吧
最近有同事来电话说一块四内存槽的INETL技嘉主板怎样弄也只能用一条内存槽才亮机。机器拿到手后确实如此,也就是只有它一直用开的内存槽才能点亮,用尽各种方法:换内存,刷内存金手指,刷插槽,都无果。来论坛搜了一把资料,方法也是雷同的,有的简单说内存槽坏,有的甚至用沙纸打磨内存槽,有的干脆换内存槽,我就觉得,一个没用过的插槽,会自动坏的么?当然不会,除非里面有尘,槽的触点氧化了也可以接受,槽的触点弹性不良也可以理解。但当我把所有的物理因数排除了,剩下的还有什么呢?然后仔细观察了插槽,内存没插上的情况下,内存槽的两端的小孔都有金属条是往中间压着的(内存插进的那条槽的两端都有对称的小孔,一看就能看见了)。当插上内存的时候,这两端的小孔上的金属条会稍微的往外移,也就是可以证明内存已经和槽有了接触了。确定接触是后了,然后看主板上内存槽的走线,很大一部分是直接到CPU底座的。后来在同事的再三催促下,只能把板还了,但他总想知道什么原因,我直当了然的说你的U有问题,要么就内存管理芯片不识别你的其他槽的问题。他当然不相信,U在一个内存槽使用正常,怎么会有问题呢?
今天又遇上了这个问题,一块原装4条内存槽ACER主板,AMD的,只能使用2个槽,而且是跳开的无法使用双通道,排除了一系列物理因数,我就把怀疑的重点放在了CPU上,果断换了另外一个,结果4条槽,无论哪条内存插哪条槽,都可以开机。这里大家也应该明白了,其实出现这种离奇的事,也就是内存槽一直没用,过了好长一段时间后再用就根本无法使用了,不妨试下重新安装一下CPU,INTEL的U可以尝试刷下CPU的触点。内存走线很多都是直接链接CPU的,如果不是CPU有问题,那就是CPU的接触问题了。
下载分10 分
原创币0 点
下载次数921 次
上传次数6 次
主题帖子积分
会员等级:
记下来了,这个信息较重要,以前没有去想过CPU
下载分390 分
原创币0 点
下载次数11 次
上传次数0 次
主题帖子积分
会员等级:
初学乍练, 积分 24, 距离下一级还需 6 积分
很多时候主板点不亮,换个cpu就好了,再换回之前cpu也好了,这大概也是触点的事吧
其实这个是窍门,不用换其它CPU的,有时候把CPU拆下来,再插上去,就可以亮机了!&
下载分2977 分
原创币0 点
下载次数1311 次
上传次数514 次
主题帖子积分
会员等级:
银牌维客, 积分 321, 距离下一级还需 79 积分
感谢楼主分亨 ,楼主经验十分丰富,直得学习
下载分652 分
原创币0 点
下载次数12 次
上传次数289 次
主题帖子积分
会员等级:
金牌维客, 积分 401, 距离下一级还需 299 积分
很多时候主板点不亮,换个cpu就好了,再换回之前cpu也好了,这大概也是触点的事吧
其实这个是窍门,不用换其它CPU的,有时候把CPU拆下来,再插上去,就可以亮机了!
下载分652 分
原创币0 点
下载次数12 次
上传次数289 次
主题帖子积分
会员等级:
金牌维客, 积分 401, 距离下一级还需 299 积分
CPU导致主板内存槽不工作,也有可能是CPU的触点接触不良,导致部分内存槽不工作!
下载分304 分
原创币0 点
下载次数87 次
上传次数21 次
主题帖子积分
会员等级:
见习维客, 积分 44, 距离下一级还需 26 积分
这个真的碰到过。楼主的经验记下了。多谢分享
下载分396 分
原创币0 点
下载次数134 次
上传次数6 次
主题帖子积分
会员等级:
银牌维客, 积分 300, 距离下一级还需 100 积分
分析的有道理,楼主辛苦了。
下载分1965 分
原创币0 点
下载次数98 次
上传次数68 次
主题帖子积分
会员等级:
铜牌维客, 积分 176, 距离下一级还需 24 积分
这个真是一个比较好的意见&&感谢楼主总结
下载分4206 分
原创币0 点
下载次数301 次
上传次数1 次
主题帖子积分
会员等级:
银牌维客, 积分 388, 距离下一级还需 12 积分
AMD的U集成内存控制器的,这种架构的U引起这类问题的是有,Intel架构的暂时没见过。
郁闷中!!! <img src="static/image/smiley/comcom/24.gif"
下载分14 分
原创币0 点
下载次数44 次
上传次数1 次
主题帖子积分
会员等级:
初学乍练, 积分 12, 距离下一级还需 18 积分
一般Intel主板这样问题 都是直接上洗板水刷一下U 和座子&&座子刷的时候注意针脚& &一般都会好&&
下载分11 分
原创币0 点
下载次数750 次
上传次数24 次
主题帖子积分
会员等级:
铜牌维客, 积分 124, 距离下一级还需 76 积分
是,CPU问题会导致内存不过
下载分1593 分
原创币0 点
下载次数80 次
上传次数0 次
主题帖子积分
会员等级:
铜牌维客, 积分 142, 距离下一级还需 58 积分
前一段时间修过一片雷击坏的主板,坏的东西可不少,都换了后可亮机,但只有一个内存槽能用,就只装一根内存条给客户了。以后遇到这种情况换U或刷下触点试一下。但AMD的U怎么办呢》?
下载分1821 分
原创币4 点
下载次数398 次
上传次数61 次
主题帖子积分
会员等级:
楼主研究的真透彻啊遇到试试
下载分1420 分
原创币1 点
下载次数259 次
上传次数106 次
主题帖子积分
会员等级:
银牌维客, 积分 208, 距离下一级还需 192 积分
我也经常碰到这种情况来着
远程培训学员
实地培训学员
迅维培训办公室联系方式:电话6;QQ:
Powered by Discuz! X3.2 -wLicensed
& 2016 Comsenz Inc.博客访问: 697722
博文数量: 187
博客积分: 1528
博客等级: 上尉
技术积分: 1777
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: C/C++
摘之:《高质量C++/C编程指南》
&&&&&& 发生内存错误是件非常麻烦的事情。编译器不能自动发现这些错误,通常是在程序运行时才能捕捉到。而这些错误大多没有明显的症状,时隐时现,增加了改错的难度。有时用户怒气冲冲地把你找来,程序却没有发生任何问题,你一走,错误又发作了。
常见的内存错误:
u内存分配未成功,却使用了它。
编程新手常犯这种错误,因为他们没有意识到内存分配会不成功。常用解决办法是,在使用内存之前检查指针是否为NULL。如果指针p是函数的参数,那么在函数的入口处用assert(p!=NULL)进行检查。如果是用malloc或new来申请内存,应该用if(p==NULL) 或if(p!=NULL)进行防错处理。
u内存分配虽然成功,但是尚未初始化就引用它。
犯这种错误主要有两个起因:一是没有初始化的观念;二是误以为内存的缺省初值全为零,导致引用初值错误(例如数组)。
内存的缺省初值究竟是什么并没有统一的标准,尽管有些时候为零值,我们宁可信其无不可信其有。所以无论用何种方式创建数组,都别忘了赋初值,即便是赋零值也不可省略,不要嫌麻烦。
u内存分配成功并且已经初始化,但操作越过了内存的边界。
例如在使用数组时经常发生下标“多1”或者“少1”的操作。特别是在for循环语句中,循环次数很容易搞错,导致数组操作越界。
u忘记了释放内存,造成内存泄露。
含有这种错误的函数每被调用一次就丢失一块内存。刚开始时系统的内存充足,你看不到错误。终有一次程序突然死掉,系统出现提示:内存耗尽。
动态内存的申请与释放必须配对,程序中malloc与free的使用次数一定要相同,否则肯定有错误(new/delete同理)。
u释放了内存却继续使用它。
有三种情况:
(1)程序中的对象调用关系过于复杂,实在难以搞清楚某个对象究竟是否已经释放了内存,此时应该重新设计数据结构,从根本上解决对象管理的混乱局面。
(2)函数的return语句写错了,注意不要返回指向“栈内存”的“指针”或者“引用”,因为该内存在函数体结束时被自动销毁。
(3)使用free或delete释放了内存后,没有将指针设置为NULL。导致产生“野指针”。
其对策如下:
l用malloc或new申请内存之后,应该立即检查指针值是否为NULL。防止使用指针值为NULL的内存。
l不要忘记为数组和动态内存赋初值。防止将未被初始化的内存作为右值使用。
l避免数组或指针的下标越界,特别要当心发生“多1”或者“少1”操作。
l动态内存的申请与释放必须配对,防止内存泄漏。
l用free或delete释放了内存之后,立即将指针设置为NULL,防止产生“野指针”。
=======================================================================
*** glibc detected *** free(): invalid pointer:*** glibc detected *** malloc(): memory corruption:*** glibc detected *** double free or corruption (out): 0xc18a0 ****** glibc detected *** corrupted double-linked list: 0xab150 ***你是否遇到过这样的情况,太沮丧了,程序总是无端coredump,gdb到core文件里面也看不出个所以然来,这对于一个大型的商业系统来说太令人恐怖了,事故随时可能发生。遇到棘手的问题,慌张是没用的,解决不了任何问题。先坐下来,喝杯茶,舒缓一下神经。内存问题始终是c++程序员需要去面对的问题,这也是c++语言的门槛较高的原因之一。通常我们会犯的内存问题大概有以下几种:1.内存重复释放,出现double free时,通常是由于这种情况所致。2.内存泄露,分配的内存忘了释放。3.内存越界使用,使用了不该使用的内存。4.使用了无效指针。5.空指针,对一个空指针进行操作。对于第一种和第二种,第五种情况,就不用多说,会产生什么后果大家应该都很清楚。第四种情况,通常是指操作已释放的对象,如:1.已释放对象,却再次操作该指针所指对象。2.多线程中某一动态分配的对象同时被两个线程使用,一个线程释放了该对象,而另一线程继续对该对象进行操作。我们重点探讨第三种情况,相对于另几种情况,这可以称得上是疑难杂症了(第四种情况也可以理解成内存越界使用)。内存越界使用,这样的错误引起的问题存在极大的不确定性,有时大,有时小,有时可能不会对程序的运行产生影响,正是这种不易重现的错误,才是最致命的,一旦出错破坏性极大。什么原因会造成内存越界使用呢?有以下几种情况,可供参考:例1:&&& &&& char buf[32] = {0};&&& &&& for(int i=0; i<n; i++)// n
32&&& &&& {&&& &&& &&& buf[i] = 'x';&&& &&& }&&& &&& ....&&& &&& 例2:&&& &&& char buf[32] = {0};&&& &&& string str = "this is a test sting !!!!";&&& &&& sprintf(buf, "this is a test buf!string:%s", str.c_str()); //out of buffer space&&& &&& ....&&& &&& 例3:&&& &&& string str = "this is a test string!!!!";&&& &&& char buf[16] = {0};&&& &&& strcpy(buf, str.c_str()); //out of buffer space&&& &&& 类似的还存在隐患的函数还有:&&& &&& strcat,vsprintf等同样,memcpy, memset, memmove等一些内存操作函数在使用时也一定要注意。&&& &&& 当这样的代码一旦运行,错误就在所难免,会带来的后果也是不确定的,通常可能会造成如下后果:1.破坏了堆中的内存分配信息数据,特别是动态分配的内存块的内存信息数据,因为操作系统在分配和释放内存块时需要访问该数据,一旦该数据被破坏,以下的几种情况都可能会出现。 &&& &&& *** glibc detected *** free(): invalid pointer:&&& &&& *** glibc detected *** malloc(): memory corruption:&&& &&& *** glibc detected *** double free or corruption (out): 0xc18a0 ***&&& &&& *** glibc detected *** corrupted double-linked list: 0xab150 ***&&& &&& 2.破坏了程序自己的其他对象的内存空间,这种破坏会影响程序执行的不正确性,当然也会诱发coredump,如破坏了指针数据。3.破坏了空闲内存块,很幸运,这样不会产生什么问题,但谁知道什么时候不幸会降临呢?通常,代码错误被激发也是偶然的,也就是说之前你的程序一直正常,可能由于你为类增加了两个成员变量,或者改变了某一部分代码,coredump就频繁发生,而你增加的代码绝不会有任何问题,这时你就应该考虑是否是某些内存被破坏了。排查的原则,首先是保证能重现错误,根据错误估计可能的环节,逐步裁减代码,缩小排查空间。检查所有的内存操作函数,检查内存越界的可能。常用的内存操作函数:sprintf snprintf vsprintf vsnprintfstrcpy strncpy strcat memcpy memmove memset bcopy如果有用到自己编写的动态库的情况,要确保动态库的编译与程序编译的环境一致。保持好的编码习惯是杜绝错误的最好方式!
阅读(1611) | 评论(1) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
用valgrind可以很快的定位内存问题。
请登录后评论。帖子很冷清,卤煮很失落!求安慰
手机签到经验翻倍!快来扫一扫!
加内存条的问题!谢谢!!!
2968浏览 / 13回复
机器自带的是&&&& 三星 2G&&DDR3 1600
现在买的是有一根 三星 2G&&DDR3 1333
两者可以组合在一块吗?谢谢。
大家支持下啊。
大家帮帮忙啊!
大家帮帮忙。
可以倒是可以,就是浪费了1600频率的!为什么不买1600的啊??
建议买4G的
如果 64位系统
可以添加,但是如果买1333的,两根条子就都降频了。
对 第4楼 【阿饼】 说:=========================好的,谢谢。
对 第6楼 frank_zxs 说:=========================好的,谢谢。
对 第5楼 lsmz123 说:=========================好的,谢谢。
直接上4G 1600
可能没2G 1600的
我直接上一根4G 1600
降频了 影响机器速度
建议不要这样组合
也行,只是没把性能完全发挥出来
赶紧站位,此时不抢更待何时
您需要登录后才可以回帖&&&|&&&&&
可能感兴趣的板块:
用户名/注册邮箱/注册手机号
其他第三方号登录2010年10月 C/C++大版内专家分月排行榜第二
2011年9月 C/C++大版内专家分月排行榜第二2011年4月 C/C++大版内专家分月排行榜第二2010年11月 C/C++大版内专家分月排行榜第二
2011年6月 C/C++大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 内存条兼容性问题 的文章

 

随机推荐