在标签页中最小化表单时访问冲突

时间:2014-04-03 07:22:30

标签: delphi delphi-xe

如何调试此错误?

Access violation at address 00498AD7 in module 'MyApp.exe' read of address 00000008

我有一个应用程序,其页面控件与客户端对齐,当我在特定的tabSheet中时,如果我单击Windows最小化按钮,则会出现访问冲突错误(并且应用程序最小化)。我可以最大化它看起来像什么都没错。 但那条消息让我和我的顾客感到恼火。 它也只发生在一个TabSheet中。当我在任何其他选项卡中时,当我最小化时,不会出现错误。

我想在Search |中输入错误编号转到地址...但它没有启用所以我不能。 可能是什么问题? 我不使用动态创建的组件,它们都是在设计时添加的,所以这不是一个免费的问题。

如何跟踪此问题的根源? 感谢

1 个答案:

答案 0 :(得分:2)

您正在访问地址为8的变量。这通常意味着您有一个nil对象引用,并且您尝试访问偏移量为8的成员。地址00498AD7是位置在导致错误的代码的可执行文件中。如果您有可执行文件的详细地图文件,则可以将该地址交叉引用到程序中的函数。但是,这通常是有限的用途。

调试它很容易。确保调试器选项配置为在引发异常时在IDE中断。然后在调试器下运行,当错误发生时,调试器将突出显示导致错误的代码行。或者你可能需要查看几个级别的调用堆栈。

除了当前的问题之外,使用像madExcept或EurekaLog这样的工具可以让你在远程发生这些问题时进行调试。例如,对您的客户'机器。