0

我想调试一个程序的执行。在这个过程后面有几个触发器和事务。在此过程中更新了一个数据集,其行为与所有其他数据集不同。所以想详细调试一下。

我已经尝试使用普通的过程调试器进行调试,但这只是表面上的调试,所以它只调试这个过程,而不是跳转到这个执行中包含的所有表/过程/触发器。

我也尝试使用跟踪和审计功能,但这太混乱了,它显示了太多我不需要的信息。

基本上我需要知道是否有可能像在其他IDE(例如Eclipse)中那样进行详细调试。

4

2 回答 2

3

这可能不是您正在寻找的答案,但过去对我有用。

我所做的代替调试以捕获运行时统计信息和流程如下。

在 Firebird 2.5 中,您拥有自主事务。我有一个存储过程,它接受上下文描述和消息。在 SP 中,我将上下文和消息以及时间戳插入到一个认为用于记录的 Firebird 表中。我将该插入语句包装在“IN AUTONOMOUS TRANSACTION”中。该事务将立即提交该事务,并允许我在过程执行时查看该表中的行。

您可以捕获经过的时间或其他统计信息。这样做的缺点是您需要更新您想要从中获取信息的存储过程和触发器,因此在生产系统中可能不允许这样做。

于 2019-04-12T11:42:47.973 回答
2

Firebird 没有针对存储过程的调试功能(除了 trace 提供的功能)。正如 Arioch 的评论中所指出的那样,IBExpert 的调试功能模拟了存储过程的执行,它实际上并没有在服务器上单步执行。

于 2019-04-12T07:10:12.250 回答