我想调试过程的执行。该过程的背后有几个触发器和事务。此过程中有一个更新的数据集,其行为不同于所有其他数据集。所以我想详细调试。
我已经尝试使用普通的过程调试器进行调试,但这只是在表面上进行调试,因此它仅调试此过程,而不会跳入此执行中包括的所有表/过程/触发器中。
我也尝试使用跟踪和审计功能,但这太令人困惑了,它显示了我不需要的太多信息。
基本上,我需要知道是否有可能像其他IDE(例如Eclipse)中那样详细调试。
答案 0 :(得分:3)
这可能不是您要找的答案,但过去对我有用。
下面是代替调试来捕获运行时统计信息和流程的操作。
在Firebird 2.5中,您拥有autonomous transactions。我有一个存储过程,其中包含上下文描述和消息。在SP内,我将上下文和消息以及时间戳插入到视为进行日志记录的Firebird表中。我将该插入语句包装在“ IN AUTOMONMOUS TRANSACTION”中。该事务将立即提交该事务,并允许我在执行过程时看到该表中的行。
您可以捕获经过时间或其他统计信息。这种方式的缺点是您将需要更新存储过程和触发器,以从中获取信息,因此在生产系统中可能不允许这样做。
答案 1 :(得分:2)
Firebird没有针对存储过程的调试功能(除trace提供的功能外)。如Arioch的评论所述,IBExpert的调试功能可模拟存储过程的执行,实际上并不会在服务器上逐步执行。