Delphi7开发的软件运行中出现随机偶发Access violation at address

小弟跪求大神帮帮忙,搞了许久实在是搞不定
频率大约在一天两次至五天一次之间,即使什么都没操作只是在打开了软件放那不动就有概率出错,出现错误后关不掉一直点确定一直出只能重启或任务管理器结束任务
报错内容如下:
Access violation at address 004042CE in module 'xxx.exe' Read of address 00000027.
偶尔会伴随这样的错误一起弹出:
Invalid.class typecast.
生成map文件后定位位置是这样的:
0001:000032C8       @AsClass
根据地址跳转到错误行显示是这样的:
@AsClass:
004042C8 85C0  test eaX,eax
004042CA 7416  jz +$16
004042CC 89C1  mov ecx,eax
004042CE 8B09  mov ecx,[ecx]   //跳转到了此行
004042D0 39D1  cmp ecx,edx
004042D2 740E  jz +$0e
004042D4 8B49DC  mov ecx,[ecx-$24]
004042D7 85C9  test ecx,ecx
004042D9 75E3  jnz -$0d
004042DB B00A  mov al, $0a
004042DD E95AEAFFEE  jmp Error
004042E2 C3  ret
004042E3 90  nop
 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Access Violation是一种常见的错误类型,它意味着某个程序试图访问一个无效的内存地址,而禁止这样的操作。在你的情况下,我们看到的错误信息是“Access Violation at address 00766e7c in module ledshowtw2011.exe”,这意味着在ledshowtw2011.exe这个程序模块,尝试访问00766e7c这个无效的内存地址。 造成Access Violation的原因很多,其可能包括以下几种常见情况: 1. 内存访问错误程序可能试图访问已释放的或未分配的内存,或者试图通过指针操作无效的内存地址。 2. 多线程冲突:当多个线程同时访问或修改同一块内存时,可能会导致内存访问冲突。 3. 软件错误程序可能存在一些逻辑错误或者BUG,导致访问了无效的内存地址。 为了修复这个问题,可以尝试以下几个解决方法: 1. 重新启动电脑:有时,简单的重新启动可以清除内存的一些错误,可能会解决问题。 2. 更新软件版本:如果存在已知的BUG或者问题,软件开发者可能已经发布了修复补丁或者更新版本,可以尝试更新软件以解决问题。 3. 检查硬件冲突:有时候内存访问冲突可能是由于硬件问题引起的,可以检查并修复电脑硬件问题。 4. 禁用安全软件:某些防病毒软件或者防火墙可能会干扰其他程序的正常运行,可以尝试禁用或者调整相关设置。 如果以上方法无效,建议将错误信息告给软件开发者,以便他们能够更深入地了解和解决该问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值