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

Posted

技术标签:

【中文标题】Paradox (ObjectPal) 应用程序偶尔导致一般保护违规,正在寻找原因【英文标题】:Paradox (ObjectPal) Application causing General Protection Violations sporadically, looking for the Reason 【发布时间】:2014-08-07 05:33:24 【问题描述】:

我们有一个非常大的基于 paradox / objectpal 的应用程序。由于我们将数据库从基于文件的表(悖论)移至 ms sql 2008 速成版,因此我们遇到了许多偶尔出现的一般保护违规 (GPV)。这些错误似乎只发生在 paradox 运行时,而不是开发版,因此无法进行调试。我们做了很多工作来最小化这些 GPV,看起来它正在变得更好。无论如何,这里和那里仍然存在使整个应用程序崩溃的烦人的 GPV。 所以,我正在寻找的是一种用于 Windows 的调试器/记录器,以查看哪些操作/方法会导致这些错误。像 Windows 事件日志,但有更多的细节可以提示要查找的内容和位置。我不确定这样的工具是否存在......

【问题讨论】:

【参考方案1】:

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

(1) 与这些人核实

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

关于 GPV (GPF) 主题与运行时但与开发平台无关。我确定你的问题已经出现了。

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

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

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

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

【讨论】:

感谢您的回答。几周前,我在您链接的新闻组中发布了我的问题。另外,我收集了有关 gpv 的所有信息(很多),并逐步遵循所有说明。我希望获得某种“调试器”或 Windows 日志工具,以查看导致这些错误的操作或方法。处理 wordfiles (ole-objects) 时会出现很多 gpv。我会在日志库中尝试您的建议。

以上是关于Paradox (ObjectPal) 应用程序偶尔导致一般保护违规,正在寻找原因的主要内容,如果未能解决你的问题,请参考以下文章

Paradox / ObjectPal 和 Microsoft XML Services (MSXML):调用某些方法时崩溃

读取 Paradox 数据库文件

是否可以在 .Net 应用程序中读取 Paradox 7.x .db 文件?

Paradox 插入数据操作必须使用可更新查询

在 Windows 7(32 位)上运行 2 个读取 Paradox 表的应用程序失败

SSIS如何从Paradox导入数据?