运行程序时出现Access violation at address ××× in module 'Project1.exe' Read of address 000000.

时间:2022-10-29 18:37:30
本人运行的程序数据量很大,用的都是动态数组,并且下载安装了teechart7,用的是builder6
程序运行的时候总出现Access violation at address ××× in module  'Project1.exe'   Read of address 000000.这样的错误,一开始我以为是数据量太大,以前也出现过这种问题,把数组改小就能运行,后来又发现将工程里的画图的TChart删除几个程序也能运行
但是今天发现同样的程序,在我同学的机子上能跑,到了我的机子上就出现如题所示的错误,并且同样的运行一个程序,在我同学的机子上才占50多个cpu,在我的机子上占了98!我们机子配置基本相同,并且她的是512的内存,我的是1G的内存(自己加了一个512的)。
请问各位高手,这是怎么回事啊?该从什么方面去着手?并且数据量不能改小

14 个解决方案

#1


不太明白!!

#2


Access   violation   at   address   ×××   in   module     "Project1.exe "       Read   of   address   000000

这个主要是访问了一个没有被初始化的内存地址。
通过try ... catch来定位错误,如果懂得使用map文件来查错误则只须在编译选项当中输出map文件,否则的话,就自己记录执行过了哪一行,然后在catch当中写出exception日志,从而达到定位的目的,只有定位到问题代码才能解决问题。另外,任何一个new都需要判断结果是不是没有分配到内存,并且记录下LastError,以及位置。

#3


另外还有一个内置的就是GC,可以开启动,或者找别的控件,比如EurekaLog

#4


av错误那么一般不是数组就是指针访问越界了。好好查查吧。
将地址在cpu窗体中查查。或许能得到有用信息。

#5


在运行期调试一下很容易找到问题了,最好开CG.

#6


什么是GC啊?没听说过,还望多多指导
程序正常运行占98个cpu正常吗?

#7


是我写错了,不是GC,是CG(Code Guard),在工程(Projects)选项(Options)当中有一个独立的分页,可以先选择开启该功能再选择一些细节性的参数。更详细的建议找资料查一查,以方便理解。

#8


CG我是一窍不通,马上学习一下。最让我搞不明白的是为什么在别人的机子上能跑这个问题,和我的程序运行占cpu很多这个问题

#9


占用CPU分好几种情况,主要可能是跳进了不同的分支,或者说是没有进入复杂的分支。
比如说,在你的机器上一切正常的情况下占用的CPU资源比较多,而换到别的机器上可能由于中间步骤执行过程当中,受某些因素影响,没有做必要地运算就跳出来,虽然那么就可能占用的CPU时间比较少。个人建议是做日志记录。
要不加我QQ吧,找时间我帮你看一下(QQ:83039548,请注明CSDN)。

#10


该回复于2008-07-19 16:09:46被版主删除

#11



不知道LZ后来这个问题是怎么解决的
郁闷,我也遇到过这个问题,好长时间了哎

#12


我遇到过~~
Project->Options->Linker
勾上Use dynamic RTL 和Use debug libraries

#13



http://topic.csdn.net/u/20080925/15/1a136787-35fa-4025-b2e9-b4fae3130100.html
跟你那个错误比较雷同

#14


这个跟tchart的控件有关吗?
请问你的teechart7是破解版的吗?

#1


不太明白!!

#2


Access   violation   at   address   ×××   in   module     "Project1.exe "       Read   of   address   000000

这个主要是访问了一个没有被初始化的内存地址。
通过try ... catch来定位错误,如果懂得使用map文件来查错误则只须在编译选项当中输出map文件,否则的话,就自己记录执行过了哪一行,然后在catch当中写出exception日志,从而达到定位的目的,只有定位到问题代码才能解决问题。另外,任何一个new都需要判断结果是不是没有分配到内存,并且记录下LastError,以及位置。

#3


另外还有一个内置的就是GC,可以开启动,或者找别的控件,比如EurekaLog

#4


av错误那么一般不是数组就是指针访问越界了。好好查查吧。
将地址在cpu窗体中查查。或许能得到有用信息。

#5


在运行期调试一下很容易找到问题了,最好开CG.

#6


什么是GC啊?没听说过,还望多多指导
程序正常运行占98个cpu正常吗?

#7


是我写错了,不是GC,是CG(Code Guard),在工程(Projects)选项(Options)当中有一个独立的分页,可以先选择开启该功能再选择一些细节性的参数。更详细的建议找资料查一查,以方便理解。

#8


CG我是一窍不通,马上学习一下。最让我搞不明白的是为什么在别人的机子上能跑这个问题,和我的程序运行占cpu很多这个问题

#9


占用CPU分好几种情况,主要可能是跳进了不同的分支,或者说是没有进入复杂的分支。
比如说,在你的机器上一切正常的情况下占用的CPU资源比较多,而换到别的机器上可能由于中间步骤执行过程当中,受某些因素影响,没有做必要地运算就跳出来,虽然那么就可能占用的CPU时间比较少。个人建议是做日志记录。
要不加我QQ吧,找时间我帮你看一下(QQ:83039548,请注明CSDN)。

#10


该回复于2008-07-19 16:09:46被版主删除

#11



不知道LZ后来这个问题是怎么解决的
郁闷,我也遇到过这个问题,好长时间了哎

#12


我遇到过~~
Project->Options->Linker
勾上Use dynamic RTL 和Use debug libraries

#13



http://topic.csdn.net/u/20080925/15/1a136787-35fa-4025-b2e9-b4fae3130100.html
跟你那个错误比较雷同

#14


这个跟tchart的控件有关吗?
请问你的teechart7是破解版的吗?