解决方案 »

  1.   

    SIGSEGV 这是segment fault,应该是使用了无效的地址造成的,最大的可能性是某些对象已经释放了,然后又去访问它。
      

  2.   

    莫非你在窗体的OnClose或者OnDestroy事件处理中“已经将窗体进行了Free”?
      

  3.   


    我查找了下没有发现将窗体进行Free的语句啊
      

  4.   

    不像是我引用了非法地址的原因,我在窗体close事件中故意引用了已经释放的窗体出现的错误如下:
    并且这种情况下我的IDE也不会卡。跟我上面的情况不同,并且发现停住的地方是在我的IDE自己的一个文件中的。还有我用的是Lazarus但和Delphi基本上就是一样的!!不知什么原因啊!!
      

  5.   

    仔细检查你的OnClose事件和OnDestroy事件(如果有的话),你会发现问题的。
      

  6.   


    从窗体出现到窗体被关闭,什么事都不做也会出现这种错误情况,那是不是意味着FormCreate里有问题呢?
      

  7.   

    可能,也可能是某些单元的initialization、finalization部分中的代码导致的,也可能是运行中把某些库的数据结构指向错误导致的(结束的时候库中代码释放资源就会出错)。
      

  8.   


    DelphiGuy我好像知道原因了!比如说我有两个窗体Form1,Form2,当我在关闭Form2时,在它的OnClose事件中做了Form2.Free,于是当我关闭程序时,它就出现了上述的错误。
    我还想问的是当我想关闭某一子窗体时,难道不用在它的OnClose事件中进行Form.Free吗?如果不Free的话那它岂不是占了有限的内存空间!
      

  9.   

    原来就是4楼说的原因嘛,关闭窗体的默认动作是隐藏,如果你想释放,可以在OnClose事件处理中加一句:Action := caFree;