EAccessViolation 地址访问错误

来源:互联网 发布:电脑配件京东还是淘宝 编辑:程序博客网 时间:2024/04/30 05:50
http://bbs.csdn.net/topics/320076569
用d6在写一个程序,程序中用到了好多控件,程序在退出时就报下面的错误:

Project fundclient.exe raised exception class EAccessViolation with message 'Access violation at address 00000000. Read of address 00000000'.

我自己跟踪了一下在主程序的最后一句end。后面报出来的。我现在不知道怎么跟踪,用EurekaLog试了下,上面显示最后的call stack 如下:

<ExceptionThread ID="2200" Priority="0" Class="" MainThread="True">
        <Line Address="40037EE8" Module="rtl60.bpl" Unit="Classes" Class="" Procedure="StdWndProc" Number="" Offset=""/>
        <Line Address="77D2F3C7" Module="user32.dll" Unit="" Class="" Procedure="SendMessageA" Number="" Offset=""/>
        <Line Address="77D2F383" Module="user32.dll" Unit="" Class="" Procedure="SendMessageA" Number="" Offset=""/>
        <Line Address="400F4602" Module="vcl60.bpl" Unit="Forms" Class="TApplication" Procedure="Destroy" Number="" Offset=""/>
        <Line Address="4000572C" Module="rtl60.bpl" Unit="System" Class="TObject" Procedure="Free" Number="" Offset=""/>
        <Line Address="40005724" Module="rtl60.bpl" Unit="System" Class="TObject" Procedure="Free" Number="" Offset=""/>
        <Line Address="40111EAF" Module="vcl60.bpl" Unit="Controls" Class="" Procedure="DoneControls" Number="" Offset=""/>
        <Line Address="40111EA8" Module="vcl60.bpl" Unit="Controls" Class="" Procedure="DoneControls" Number="" Offset=""/>
        <Line Address="4011213B" Module="vcl60.bpl" Unit="Controls" Class="" Procedure="Finalization" Number="" Offset=""/>
        <Line Address="40006266" Module="rtl60.bpl" Unit="System" Class="" Procedure="FinalizeUnits" Number="" Offset=""/>
        <Line Address="40006230" Module="rtl60.bpl" Unit="System" Class="" Procedure="FinalizeUnits" Number="" Offset=""/>
        <Line Address="400066E5" Module="rtl60.bpl" Unit="System" Class="" Procedure="_Halt0" Number="" Offset=""/>
        <Line Address="4000668C" Module="rtl60.bpl" Unit="System" Class="" Procedure="_Halt0" Number="" Offset=""/>
        <Line Address="004EB685" Module="fun.exe" Unit="fun.dpr" Class="" Procedure="" Number="92" Offset="9"/>
        <Line Address="7C92DCB8" Module="ntdll.dll" Unit="" Class="" Procedure="ZwSetInformationThread" Number="" Offset=""/>

现在一点头绪都没有,请高手指点下。
  • <iframe id="iframeu1636200_0" src="http://pos.baidu.com/gchm?rdid=1636200&amp;dc=2&amp;di=u1636200&amp;dri=0&amp;dis=0&amp;dai=2&amp;ps=1583x215&amp;dcb=BAIDU_SSP_define&amp;dtm=BAIDU_DUP_SETJSONADSLOT&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1461249854602&amp;ti=EAccessViolation%20%E5%9C%B0%E5%9D%80%E8%AE%BF%E9%97%AE%E9%94%99%E8%AF%AF%20%E9%AB%98%E6%89%8B%E8%AF%B7%E8%BF%9B-CSDN%E8%AE%BA%E5%9D%9B-CSDN.NET-%E4%B8%AD%E5%9B%BD%E6%9C%80%E5%A4%A7%E7%9A%84IT%E6%8A%80%E6%9C%AF%E7%A4%BE%E5%8C%BA&amp;ari=1&amp;dbv=2&amp;drs=3&amp;pcs=1008x679&amp;pss=1008x4900&amp;cfv=0&amp;cpl=5&amp;chi=1&amp;cce=true&amp;cec=UTF-8&amp;tlm=1461249857&amp;ltu=http%3A%2F%2Fbbs.csdn.net%2Ftopics%2F320076569&amp;ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DxmaYc-d0UZMWvxDRhNbbo8uULzu9FoDfYrxafBGQTOfEg4FHVF1eozsNGB_KWE3J%26wd%3D%26eqid%3Da9b59c9a00001545000000065718e6bf&amp;ecd=1&amp;psr=1024x768&amp;par=1024x740&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=7&amp;col=zh-CN&amp;cdo=-1&amp;tcn=1461249857&amp;qn=bf0493034c57e77a&amp;tt=1461249854509.2555.3054.3059" width="200" height="22" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="box-sizing: content-box; border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;"></iframe>
     
  • <iframe id="iframeu1636201_0" src="http://pos.baidu.com/gchm?rdid=1636201&amp;dc=2&amp;di=u1636201&amp;dri=0&amp;dis=0&amp;dai=3&amp;ps=1583x469&amp;dcb=BAIDU_SSP_define&amp;dtm=BAIDU_DUP_SETJSONADSLOT&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1461249854602&amp;ti=EAccessViolation%20%E5%9C%B0%E5%9D%80%E8%AE%BF%E9%97%AE%E9%94%99%E8%AF%AF%20%E9%AB%98%E6%89%8B%E8%AF%B7%E8%BF%9B-CSDN%E8%AE%BA%E5%9D%9B-CSDN.NET-%E4%B8%AD%E5%9B%BD%E6%9C%80%E5%A4%A7%E7%9A%84IT%E6%8A%80%E6%9C%AF%E7%A4%BE%E5%8C%BA&amp;ari=1&amp;dbv=2&amp;drs=3&amp;pcs=1008x679&amp;pss=1008x4900&amp;cfv=0&amp;cpl=5&amp;chi=1&amp;cce=true&amp;cec=UTF-8&amp;tlm=1461249857&amp;ltu=http%3A%2F%2Fbbs.csdn.net%2Ftopics%2F320076569&amp;ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DxmaYc-d0UZMWvxDRhNbbo8uULzu9FoDfYrxafBGQTOfEg4FHVF1eozsNGB_KWE3J%26wd%3D%26eqid%3Da9b59c9a00001545000000065718e6bf&amp;ecd=1&amp;psr=1024x768&amp;par=1024x740&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=7&amp;col=zh-CN&amp;cdo=-1&amp;tcn=1461249857&amp;qn=6ddb0e40ebea5ee9&amp;tt=1461249854509.2564.3025.3028" width="200" height="22" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="box-sizing: content-box; border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;"></iframe>
     
  • <iframe id="iframeu1636204_0" src="http://pos.baidu.com/gchm?rdid=1636204&amp;dc=2&amp;di=u1636204&amp;dri=0&amp;dis=0&amp;dai=4&amp;ps=1583x723&amp;dcb=BAIDU_SSP_define&amp;dtm=BAIDU_DUP_SETJSONADSLOT&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1461249854602&amp;ti=EAccessViolation%20%E5%9C%B0%E5%9D%80%E8%AE%BF%E9%97%AE%E9%94%99%E8%AF%AF%20%E9%AB%98%E6%89%8B%E8%AF%B7%E8%BF%9B-CSDN%E8%AE%BA%E5%9D%9B-CSDN.NET-%E4%B8%AD%E5%9B%BD%E6%9C%80%E5%A4%A7%E7%9A%84IT%E6%8A%80%E6%9C%AF%E7%A4%BE%E5%8C%BA&amp;ari=1&amp;dbv=2&amp;drs=3&amp;pcs=1008x679&amp;pss=1008x4900&amp;cfv=0&amp;cpl=5&amp;chi=1&amp;cce=true&amp;cec=UTF-8&amp;tlm=1461249857&amp;ltu=http%3A%2F%2Fbbs.csdn.net%2Ftopics%2F320076569&amp;ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DxmaYc-d0UZMWvxDRhNbbo8uULzu9FoDfYrxafBGQTOfEg4FHVF1eozsNGB_KWE3J%26wd%3D%26eqid%3Da9b59c9a00001545000000065718e6bf&amp;ecd=1&amp;psr=1024x768&amp;par=1024x740&amp;pis=-1x-1&amp;ccd=24&amp;cja=false&amp;cmi=7&amp;col=zh-CN&amp;cdo=-1&amp;tcn=1461249857&amp;qn=3fdc437fdc55282b&amp;tt=1461249854509.2574.3076.3078" width="200" height="22" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="box-sizing: content-box; border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;"></iframe>
    对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
    回复次数:10
    #1 得分:20回复于: 2009-10-07 19:29:56
    可能是动态创建了对象没有释放造成的~~~
    单步跟踪一下~~
    对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
    #2 得分:10回复于: 2009-10-07 20:36:53
    对象没有释放掉,用工具检测下内存泄露什么的
    对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
    #3 得分:10回复于: 2009-10-07 22:16:15
    是访问到空指针了?
    对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
    #4 得分:20回复于: 2009-10-07 22:35:45
    菜单Project->Options->Compiler->Use Debug DCUs打上勾
    在最后那个end那,用F7进Delphi源码调试一下,看是否能发现什么问题
    另外如果第三方控件的问题可能就不太好处理
    只能一个一个的排除了
    对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
    #5 得分:20回复于: 2009-10-07 22:57:29
    1、可能的问题: 程序在退出时没有释放资源、程序在退出时释放了不存在的资源;
    2、解决办法:
       确定最后一句end之后还有没有代码,如果还有代码或是继承窗体,则找到下面的代码进行跟踪;
       如果end之后没有代码了,则有可能是第三方控件造成的问题;

    如果还有什么问题,请加入QQ高级群:9642802 找管理员讨论! 
    对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
    #6 得分:10回复于: 2009-10-07 23:24:10
    单步跟踪下,看是否还是在最后一句出错。

    可能是访问了被释放的对象,
    如果涉及数据库,也有可能是访问的数据库那出问题了。
    对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
    #7 得分:0回复于: 2009-10-08 00:48:49
    试了很久得出结论是第三方控件引起的,有一个控件VirtualTree我之前是不带包编译的,退出会报错,我现在在search path中去掉相应的路径,runtime package中加入控件的dcp后,程序退出的时候就没有报错了。

    但是这样改后,我编译程序的时候第一次编译正确,第二次编译报错:找不到tmschema.dcu。这个控件一共有四个dpk:ThemeManager6,VirtualTreesD6,VirtualTreesD6D,VT_AddonsD6。我看到tmschema。pas包含在ThemeManager6.dpk中所以我就把ThemeManager6.dcp加到了运行时库里,但是没有起作用,即使把四个都加上也没用,要编译两次才行。大家有么有碰到这种编译的问题、。。。
    对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
    #8 得分:0回复于: 2009-10-08 07:37:29
    路过。
    对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
    #9 得分:10回复于: 2009-10-08 13:18:11
    重新安装一下控件包吧,编之前注意一下,是不是本来 design-time only 的被选成了 design-time and run-time
    对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
    #10 得分:0回复于: 2009-10-08 19:06:37
    楼上的是什么意思,我没有搞懂??这个设置时再哪的?
    0 0
    原创粉丝点击