熱點推薦:
您现在的位置: 電腦知識網 >> 電腦常識 >> 正文

應用程序發生異常 未知的軟件異常解決方法

2013-11-11 15:40:11  來源: 電腦常識 

  先說說硬件

  一般來說電腦硬件是很不容易壞的內存出現問題的可能性並不大(除非你的內存真的是雜牌的一塌徒地)主要方面是內存條壞了(二手內存 情況居多)使用了有質量問題的內存內存插在主板上的金手指部分灰塵太多使用不同品牌不同容量的內存從而出現不兼容的情況超頻帶 來的散熱問題你可以使用MemTest 這個軟件來檢測一下內存它可以徹底的檢測出內存的穩定度

  如果都沒有那就從軟件方面排除故障了

  先說原理內存有個存放數據的地方叫緩沖區當程序把數據放在緩沖區需要操作系統提供的“功能函數”來申請如果內存分配成功函數就會將所 新開辟的內存區地址返回給應用程序應用程序就可以通過這個地址使用這塊內存這就是“動態內存分配”內存地址也就是編程中的“光標”內存不是永遠都 招之即來用之不盡的有時候內存分配也會失敗當分配失敗時系統函數會返回一個這時返回值“”已不表示新啟用的光標而是系統向應用程序發出的 一個通知告知出現了錯誤作為應用程序在每一次申請內存後都應該檢查返回值是否為如果是則意味著出現了故障應該采取一些措施挽救這就增強了 程序的“健壯性”若應用程序沒有檢查這個錯誤它就會按照“思維慣性”認為這個值是給它分配的可用光標繼續在之後的執行中使用這塊內存真正的地址 內存區儲存的是計算機系統中最重要的“中斷描述符表”絕對不允許應用程序使用在沒有保護機制的操作系統下(如DOS)寫數據到這個地址會導致立即當 機而在健壯的操作系統中如Windows等這個操作會馬上被系統的保護機制捕獲其結果就是由操作系統強行關閉出錯的應用程序以防止其錯誤擴大 這時候就會出現上述的內存不能為“read”錯誤並指出被引用的內存地址為“x內存分配失敗故障的原因很多內存不夠系統函 數的版本不匹配等都可能有影響因此這種分配失敗多見於操作系統使用很長時間後安裝了多種應用程序(包括無意中“安裝”的病毒程序)更改了大量的系 統參數和系統檔案之後

  在使用動態分配的應用程序中有時會有這樣的情況出現程序試圖讀寫一塊“應該可用”的內存但不知為什麼這個預料中可用的光標已經失效了 有可能是“忘記了”向操作系統要求分配也可能是程序自己在某個時候已經注銷了這塊內存而“沒有留意”等等注銷了的內存被系統回收其訪問權已經不屬於 該應用程序因此讀寫操作也同樣會觸發系統的保護機制企圖“違法”的程序唯一的下場就是被操作終止執行回收全部資源計算機世界的法律還是要比人類有 效和嚴厲得多啊!像這樣的情況都屬於程序自身的BUG你往往可在特定的操作順序下重現錯誤無效光標不一定總是因此錯誤提示中的內存地址也不一定為 “x而是其它隨機數字

  首先建議

   檢查系統中是否有木馬或病毒這類程序為了控制系統往往不負責任地修改系統從而導致操作系統異常平常應加強信息安全意識對來源不明的可執行程序絕不好奇

   更新操作系統讓操作系統的安裝程序重新拷貝正確版本的系統檔案修正系統參數有時候操作系統本身也會有BUG要注意安裝官方發行的升級程序

   盡量使用最新正式版本的應用程序Beta版試用版都會有BUG

   刪除然後重新創建 WinntSystemWbemRepository 文件夾中的文件在桌面上右擊我的電腦然後單擊管理 在"服務和應用程序"下單擊服務然後關閉並停止 Windows Management Instrumentation 服務 刪除 WinntSystemWbemRepository 文件夾中的所有文件(在刪除前請創建這些文件的備份副本) 打開"服務和應用程序"單擊服務然後打開並啟動 Windows Management Instrumentation 服務當服務重新啟動時將基於以下注冊表項中所提供的信息重新創建這些文件 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWBEMCIMOMAutorecover MOFs

  下面搜集幾個例子給大家分析

  例一IE浏覽器出現“xabaef”指令引用的“x” 內存或者“xdcff”指令引用的“x”內存該內存不能為“read”要終止程序請單擊“確定”的信息框單擊“確 定”後又出現“發生內部錯誤您正在使用的其中一個窗口即將關閉”的信息框關閉該提示信息後IE浏覽器也被關閉解決方法

   開始運行窗口輸入“regsvr actxprxydll”回車接著會出現一個信息對話 框“DllRegisterServer in actxprxydll succeeded”確定再依次運行以下命令(這個方法有人說沒必要但重新注冊一下那些dll對系統也沒有壞處反正多方下手能解決問題就 行

  regsvr shdocvwdll

  regsvr oleautdll

  regsvr actxprxydll

  regsvr mshtmldll

  regsvr msjavadll

  regsvr browseuidll

  regsvr urlmondll

   修復或升級IE浏覽器同時打上系統補丁看過其中一個修復方法是把系統還原到系統初始的狀態下建議將IE升級到了

  例二有些應用程序錯誤: “xcd” 指令參考的 “xc” 內存該內存不能為 “read”解決方法Win XP的“預讀取”技術這種最佳化技術也被用到了應用程序上系統對每一個應用程序的前幾次啟動情況進行分析然後新增一個描述套用需求的虛擬“內存映 像”並把這些信息儲存到WindowsPrefetch文件夾一旦建立了映像應用軟件的裝入速度大大提高XP的預讀取數據儲存了最近次系統啟 動或應用軟件啟動的信息建議將虛擬內存撤換刪除WindowsPrefetch目錄下所有*PF文件讓windows重新收集程序的物理地址

  例三在XP下雙擊光盤裡面的“AutoRunexe”文件顯示“xfcc”指令引用的“x”內存該內存 不能為“written”要終止程序請單擊“確定”而在Windows 裡運行卻正常 解決方法這可能是系統的兼容性問題winXP的系統右鍵“AutoRunexe”文件屬性兼容性把“用兼容模式運行這個程序”項選擇上並 選擇“Windows /Me”win如果打了SP的補丁後只要開始運行輸入regsvr c:winntapppatchslayeruidll右鍵屬性也會出現兼容性的選項

  例四RealOne Gold關閉時出現錯誤以前一直使用正常最近卻在每次關閉時出現“xffffffff”指令引用的“xffffffff”內存該內存不能為 “read” 的提示 解決方法當使用的輸入法為微軟拼音輸入法並且隱藏語言欄時(不隱藏時沒問題)關閉RealOne就會出現這個問題因此在關閉RealOne 之前可以顯示語言欄或者將任意其他輸入法作為當前輸入法來解決這個問題

  例五我的豪傑超級解霸自從上網後就不能播放了每次都提示“xf”(每次變化)指令引用的“xff”內存不能 為“read”終止程序請按確定 解決方法試試重裝豪傑超級解霸如果重裝後還會到官方網站下載相應版本的補丁試試還不行只好換就用別的播放器試試了

  例六雙擊一個游戲的快捷方式xfcd”指令引用“xffffffff”內 存該內存不能為“read” 並且提示Clientdat程序錯誤解決方法重裝顯卡的最新驅動程序然後下載並且安裝DirectX

  例七一個朋友發信息過來我的電腦便出現了錯誤信息:“xbf”指令引用的“x”內存該內存不能為 “written”然後QQ自動下線而再打開QQ發現了他發過來的十幾條的信息 解決方法這是對方利用QQ的BUG發送特殊的代碼做QQ出錯只要打上補丁或升級到最新版本就沒事了


From:http://tw.wingwit.com/Article/Common/201311/6915.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.