有時(shí)候一運(yùn)行軟件就彈窗:0x1000477b指令引用的內(nèi)存不能為read,然后程序直接崩了,煩死了!特別是用IE或者開(kāi)某些大軟件的時(shí)候,動(dòng)不動(dòng)就來(lái)一下。
這問(wèn)題我之前也遇到過(guò),總結(jié)下來(lái)可能有這么幾個(gè)原因:
1. IE有漏洞,尤其是老版本的,容易緩沖區(qū)溢出,趕緊升級(jí)補(bǔ)丁或者換瀏覽器;
2. 內(nèi)存地址沖突,Windows是多任務(wù)系統(tǒng),前一個(gè)程序還沒(méi)關(guān),新的又來(lái)了,內(nèi)存分配不過(guò)來(lái)就GG了;
3. 內(nèi)存條有問(wèn)題——比如兩條不同牌子、不同大小的混插,兼容性不好;或者用了雜牌/二手條子,質(zhì)量不行;超頻了的話還要看散熱行不行。建議用MemTest跑個(gè)檢測(cè),看看內(nèi)存穩(wěn)不穩(wěn);
4. 系統(tǒng)本身有坑,比如Windows把0x00000000到0x0000ffff這段地址設(shè)成禁區(qū),程序不小心讀了就會(huì)報(bào)錯(cuò)。尤其C/C++寫(xiě)的程序沒(méi)做錯(cuò)誤檢查,malloc失敗返回null還繼續(xù)用,直接炸;
5. PIF文件搞事:用ASCII字符填滿的假pif文件,只要超過(guò)369字節(jié),點(diǎn)屬性就會(huì)崩潰,Explorer都扛不住,提示內(nèi)存不能為read。改了特定16進(jìn)制位置的數(shù)據(jù)也會(huì)出問(wèn)題;
6. Apache或Oracle服務(wù)裝得不對(duì),比如OracleOraHomeXXHTTPServer這種服務(wù)開(kāi)著但配置不對(duì),也可能引發(fā)內(nèi)存報(bào)錯(cuò),建議去服務(wù)里把它停掉;
7. 程序自己沒(méi)做好內(nèi)存管理,申請(qǐng)內(nèi)存失敗也不檢查,一讀就崩。
解決辦法可以試試:
- 更新系統(tǒng)補(bǔ)丁
- 換瀏覽器(別再用老舊IE了)
- 別混插內(nèi)存條,優(yōu)先單條大容量
- 清理下虛擬內(nèi)存,或者手動(dòng)設(shè)置個(gè)固定值
- 跑MemTest測(cè)內(nèi)存穩(wěn)定性
- 關(guān)閉不必要的后臺(tái)服務(wù),尤其是數(shù)據(jù)庫(kù)類的
- 重裝出問(wèn)題的軟件
總之先軟后硬,一步步排查唄~
這問(wèn)題我之前也遇到過(guò),總結(jié)下來(lái)可能有這么幾個(gè)原因:
1. IE有漏洞,尤其是老版本的,容易緩沖區(qū)溢出,趕緊升級(jí)補(bǔ)丁或者換瀏覽器;
2. 內(nèi)存地址沖突,Windows是多任務(wù)系統(tǒng),前一個(gè)程序還沒(méi)關(guān),新的又來(lái)了,內(nèi)存分配不過(guò)來(lái)就GG了;
3. 內(nèi)存條有問(wèn)題——比如兩條不同牌子、不同大小的混插,兼容性不好;或者用了雜牌/二手條子,質(zhì)量不行;超頻了的話還要看散熱行不行。建議用MemTest跑個(gè)檢測(cè),看看內(nèi)存穩(wěn)不穩(wěn);
4. 系統(tǒng)本身有坑,比如Windows把0x00000000到0x0000ffff這段地址設(shè)成禁區(qū),程序不小心讀了就會(huì)報(bào)錯(cuò)。尤其C/C++寫(xiě)的程序沒(méi)做錯(cuò)誤檢查,malloc失敗返回null還繼續(xù)用,直接炸;
5. PIF文件搞事:用ASCII字符填滿的假pif文件,只要超過(guò)369字節(jié),點(diǎn)屬性就會(huì)崩潰,Explorer都扛不住,提示內(nèi)存不能為read。改了特定16進(jìn)制位置的數(shù)據(jù)也會(huì)出問(wèn)題;
6. Apache或Oracle服務(wù)裝得不對(duì),比如OracleOraHomeXXHTTPServer這種服務(wù)開(kāi)著但配置不對(duì),也可能引發(fā)內(nèi)存報(bào)錯(cuò),建議去服務(wù)里把它停掉;
7. 程序自己沒(méi)做好內(nèi)存管理,申請(qǐng)內(nèi)存失敗也不檢查,一讀就崩。
解決辦法可以試試:
- 更新系統(tǒng)補(bǔ)丁
- 換瀏覽器(別再用老舊IE了)
- 別混插內(nèi)存條,優(yōu)先單條大容量
- 清理下虛擬內(nèi)存,或者手動(dòng)設(shè)置個(gè)固定值
- 跑MemTest測(cè)內(nèi)存穩(wěn)定性
- 關(guān)閉不必要的后臺(tái)服務(wù),尤其是數(shù)據(jù)庫(kù)類的
- 重裝出問(wèn)題的軟件
總之先軟后硬,一步步排查唄~