鋁門窗規劃、施工,經驗豐富
服務嚴謹、保固完善,免費估價,歡迎洽詢
專業的施工團隊,新屋裝潢
舊屋裝修,套房規畫,室內裝修申請,完工保固
首頁
‧
tw 論壇
‧
軟體討論
‧
看其它討論區
寵物館
大頭貼館
街舞館
J2H街舞團隊
街舞活動訊息
街頭極限
寫真館
搞笑館
音樂館
遊戲館
遊戲技術館
恐怖驚奇館
感人溫馨館
動漫館
模特兒討論
交友討論
明星八卦
車館
兩性討論
政治討論
散文天地
生活資訊
房仲交流
房地產投資客
房價行情討論
法拍屋討論
房屋租售討論
代書諮詢
貸款資訊
保險資訊
搬家資訊
裝潢資訊
清潔資訊
廣告招牌
冷氣空調館
鐵鋁門窗館
油漆粉刷館
防水抓漏館
拆除工程館
窗簾壁紙館
環保工程
地坪工程
系統家具討論館
修繕館
安養看護館
網域名稱討論
程式設計討論
網路行銷討論
電腦硬體
軟體討論
J2H製圖館
手機資訊
徵信討論
服飾精品
媽媽育兒經
減肥瘦身
美容保健
醫療討論
旅遊交流
美食報報館
風水命理
3C產品討論
新手討論
申訴專區
Windows操作系統出現記憶體錯誤不用慌,來解決問題吧
房東:
花花老爺
發表時間:
2007-03-21
[
檢舉
]
Windows操作系統出現記憶體錯誤不用慌,來解決問題吧
使用Windows操作系統的人有時會遇到這樣的錯誤信息:「0X????????指令引用的0x00000000記憶體,該記憶體不能written」,然後應用程式被關閉。
如果去請教一些「高手」,得到的回答往往是「Windows就是這樣不穩定」之類的義憤和不屑。
其實,這個錯誤並不一定是Windows不穩定造成的。
本文就來簡單分析這種錯誤的一般原因。
一、應用程式沒有檢查記憶體分配失敗
程序需要一塊記憶體用以儲存資料時,就需要使用操作系統提供的「功\能函數」來申請,
如果記憶體分配成功\,函數就會將所新開闢的記憶體區位址返回給應用程式,
應用程式就可以通過這個位址使用這塊記憶體。這就是「動態記憶體分配」,
記憶體位址也就是編程中的「游標」。
記憶體不是永遠都招之即來、用之不盡的,有時候記憶體分配也會失敗。
當分配失敗時系統函數會返回一個0值,這時返回值「0」已不表示新啟用的游標,
而是系統向應用程式發出的一個通知,告知出現了錯誤。作為應用程式,
在每一次申請記憶體後都應該檢查返回值是否為0,如果是,則意味著出現了故障,
應該採取一些措施挽救,這就增強了程序的「健壯性」。
若應用程式沒有檢查這個錯誤,它就會按照「思維慣性」認為這個值是給它分配的可用游標,
繼續在之後的執行中使用這塊記憶體。
真正的0位址記憶體區儲存的是電腦系統中最重要的「中斷描述符表」,
絕對不允許\應用程式使用。在沒有保護機制的操作系統下(如DOS),
寫資料到這個位址會導致立即當機,而在健壯的操作系統中,如Windows等,
這個操作會馬上被系統的保護機制捕獲,其結果就是由操作系統強行關閉出錯的應用程式,
以防止其錯誤擴大。這時候,就會出現上述的「寫記憶體」錯誤,
並指出被引用的記憶體位址為「0x00000000」。
記憶體分配失敗故障的原因很多,記憶體不夠、系統函數的版本不匹配等都可能有影響。
因此,這種分配失敗多見於操作系統使用很長時間後,
安裝了多種應用程式(包括無意中「安裝」的病毒程序),更改了大量的系統參數和系統檔案之後。二、應用程式由於自身BUG引用了不正常的記憶體游標
在使用動態分配的應用程式中,有時會有這樣的情況出現:程序試突讀寫一塊「應該可用」的記憶體,
但不知為什麼,這個預料中可用的游標已經失效了。有可能是「忘記了」向操作系統要求分配,
也可能是程序自己在某個時候已經註銷了這塊記憶體而「沒有留意」等等。
註銷了的記憶體被系統回收,其訪問權已經不屬於該應用程式,
因此讀寫操作也同樣會觸發系統的保護機制,企圖「違法」的程序唯一的下場就是被操作終止執行,
回收全部資源。電腦世界的法律還是要比人類有效和嚴厲得多啊!
像這樣的情況都屬於程序自身的BUG,你往往可在特定的操作順序下重現錯誤。
無效游標不一定總是0,因此錯誤提示中的記憶體位址也不一定為「0x00000000」,
而是其他隨機數字。如果系統經常有所提到的錯誤提示,下面的建議可能會有說明 :
1.檢視系統中是否有木馬或病毒。這類程序為了控制系統往往不負責任地修改系統,
從而導致操作系統異常。平常應加強信息安全意識,對來源不明的可執行程序絕不好奇。
2.更新操作系統,讓操作系統的安裝程序重新拷貝正確版本的系統檔案、修正系統參數。
有時候操作系統本身也會有BUG,要注意安裝官方發行的昇級程序。
3.試用新版本的應用程式。Mode:將虛擬記憶體撤換
答案:目前為止是肯定的,也就是如在下次冷天到來時亦沒再發生,就代表這是主因
追加:
如果你用 Ghost 恢復 OS 後建議 刪除WINDOWS\PREFETCH目錄下所有*.PF文件
因為需讓windows重新收集程式的物理位址
有些應用程式錯誤: \"0x7cd64998\" 指令參考的 \"0x14c96730\" 記憶體。該記憶體不能為 \"read\"
推論是此原因
源由:
Win XP的「預讀取」技術
這種最佳化技術也被用到了應用軟體上,系統對每一個應用軟體的前幾次啟動情況進行分析,
然後新增一個描述套用需求的虛擬「記憶體映像」,並把這些信息儲存到WINDOWS\\PREFETCH資料夾。
一旦建立了映像,應用軟體的裝入速度大大提高。
XP的預讀取資料儲存了最近8次系統啟動或應用軟體啟動的信息。
後敘:目前此方法亦是獨步網路的(其碼自己針對此問題查了許\久),也是常見問題,原本幾乎每天睡前關閉軟體時一些程式都會發生...read...
現在就沒發生了
贊助網站
DRAPERY窗簾設計
捲簾、窗簾布、窗簾布多種款式,免費丈量,挑戰市場超低價,為家輕鬆增添新意
油漆粉刷工程
優質油漆師傅,專業的油漆工程,免費諮詢刷油漆大小事,值得您信賴!
TECHNIQUE冷氣空調規劃
冷氣界的達人,多重售後服務保障,專業熱忱技術,多戶家庭一致推薦
共 0 人回應
姓名:
佈告內容: