上周五幫同事在Windows下安裝NavicatPremium客戶端,打開該軟件,訪問其菜單欄下的【查看】菜單出錯,見下圖1: 圖1 出現此問題的原因是內存訪問越界,說白了,就是說它訪問了不該訪問的存儲區。 其實,這個問題在我的Windows上也存在,不過因它能滿足我的正
上周五幫同事在Windows下安裝Navicat Premium客戶端,打開該軟件,訪問其菜單欄下的【查看】菜單出錯,見下圖1:
圖1
出現此問題的原因是內存訪問越界,說白了,就是說它訪問了不該訪問的存儲區。
其實,這個問題在我的Windows上也存在,不過因它能滿足我的正常需求,倒也沒有引起我的重視。一開始,我一直以為是程序兼容性問題,后來在同事那以兼容模式運行該軟件,問題沒有得到解決。后來想是和內存使用有關,我便抱著試試看的想法,進行了如下操作:
1.桌面→我的電腦→右擊選中“屬性”,見下圖2:
圖2
2.執行步驟1,會打開如圖3所示頁面,見圖3:
圖3
那么,什么是數據執行保護呢?見圖4
圖4
3.了解以上內容后,選擇“為下列程序之外的所有程序啟用 DEP”,然后把圖1報錯信息中的程序“Navicat.exe”(在Windows的路徑)添加進來,見圖5
4.第3步驟執行完后,如圖6所示
圖6
5.點擊圖6中的【應用】按鈕,系統要求重啟Windows操作系統,按系統提示重啟操作系統。
注:在重啟操作系統后,打開【查看】功能,內存訪問越界問題消失。但這并未從根本上解決問題,因為【工具】、【窗口】兩功能按鈕依然存在。網上有帖子說:遇到內存越界問題,最好重新注冊下Windows的動態鏈接庫,首先“開始”—“cmd”,在打開的dos窗口中運行“for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1”。
果真,按照這個方法我對動態鏈接庫進行了重新注冊,等重新注冊后,再次重啟Navicat Premium客戶端,內存訪問越界徹底消失。
總結:水是有源的,樹是有根的,“navicat.exe”訪問內存越界也是有原因的,為什么重新注冊動態鏈接庫問題就會解決,關于這個問題有時間還是要研究下。
補充:navicat運行一段時間后,也會間歇性出現訪問內存越界問題,再次對動態鏈接庫進行重新注冊,內存訪問越界問題消失。經過一段時間的觀察,發現內存訪問越界問題一直在反復,原因很可能與動態鏈接庫的變化有關。持續觀察中……
經過一段時間的運行,發現將Navicat premium版本升級到10.1.7后,以上現象不再復發
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com