Paradox(ObjectPal)应用程序偶尔导致一般保护违规,寻找原因

问题描述 投票:0回答:2

我们有一个基于 paradox / objectpal 的相当大的应用程序。自从我们将数据库从基于文件的表(悖论)移至 MS sql 2008 Express 版本以来,我们遇到了许多偶尔出现的一般保护违规 (GPV)。这些错误似乎只发生在 Paradox 运行时,而不是开发版本,因此无法进行调试。我们做了很多工作来尽量减少这些 GPV,而且看起来情况正在变得更好。无论如何,仍然存在令人讨厌的 GPV 导致整个应用程序崩溃。 所以,我正在寻找一种 Windows 调试器/记录器,以查看哪些操作/方法导致这些错误。类似于 Windows 事件日志,但包含更多详细信息,可以提示要查找的内容和位置。我不确定这样的工具是否存在....

debugging crash paradox
2个回答
0
投票

我可以想到你可以尝试的两件事。

(1) 与这些人核实一下

http://pnews.thedbcommunity.com/cgi-bin/dnewsweb.exe

关于 GPV (GPF) 的主题,涉及运行时,但不涉及开发平台。我确信您的问题已经出现了。

首先尝试搜索新闻组,但如果失败,您的问题可能属于“pnews.paradox-development”。

(2) 将日志记录代码添加到应用程序本身。添加一个库对象来封装事件日志文件,并使用自定义方法来报告事件。

从每个设计对象(表单、脚本、报告等)的 open() 和 close() 事件的调用开始。然后添加对任何可疑对象的 action() 方法的调用,以检测并记录特定操作。

我知道这很乏味,因为您必须将库添加到应用程序中每个设计对象的 Var() 和 Open() 方法中。但如果做得正确,您的应用程序的操作将变得非常透明。


0
投票

根据我多年使用 Paradox 的经验,GPV 可能是一个过滤问题。如果在表单中以交互方式设置过滤器,然后尝试使用 setGenFilter 打开表单,则可能会发生冲突,从而导致 GPV。多年前的 Bertil Isbergs Paradox Bug 列表是一长串 Paradox 错误、修复或解决方法。

© www.soinside.com 2019 - 2024. All rights reserved.