视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
WinXp下,启动navicat后,点击菜单栏时,出现accessviolationa
2020-11-09 07:43:53 责编:小采
文档

上周五帮同事在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后,以上现象不再复发

下载本文
显示全文
专题