我有最后期限。我在谷歌搜索,我在阅读代码,我需要帮助......
我的应用程序正在抛出 EStackOverFlow。需要通宵测试才能发现错误,所以我需要一些好的想法,否则需要很长时间才能找到。
我昨晚用 MAD except 尝试过,但没有抓住它,大概是因为没有堆栈可以这样做。我是从 IDE 运行的,所以我中断了执行并查看了调用堆栈,但除了细节之外,它充满了 MAD(我已经联系了作者,但我们之间存在很大的时间差异)。
没有(故意)递归递归例程。没有 OnChange 处理程序(这可能会意外更改它们监视的组件,从而递归调用它们自己)。没有大型数据结构(可能作为参数在堆栈上传递)。
我的第一个想法是关闭 MAD except,但我不能再等 12 或 16 个小时才能崩溃。
在无人看管的情况下,当计时器每 30 秒或每小时到期时,程序正在执行一些数据库访问,所以我将它们设置为 1 秒,希望能加速崩溃。嗯,我可以减少堆栈大小以加速崩溃吗?如果是这样,怎么做?
我还可以做些什么?我已经将我的应用程序主文件包装在 Try ... 中,其中创建了表单并运行了应用程序。
是否有一些点,例如消息处理循环,我可以在其中检查堆栈大小并查看它是否增长“太大”?(如果有,能否提供详细信息?)
还有什么建议吗?提前致谢
(ps代码太大,无法发布)