Есть ли в Firebird подробная функция отладки? - PullRequest
0 голосов
/ 11 апреля 2019

Я хотел отладить выполнение процедуры.За этой процедурой есть несколько триггеров и транзакций.В рамках этой процедуры обновляется один набор данных, который ведет себя не так, как все остальные наборы данных.Поэтому я хотел отладить подробно.

Я уже пытался отлаживать с помощью обычного отладчика процедур, но он просто отлаживает на поверхности, поэтому он отлаживает только эту процедуру и не перебирает все таблицы / процедуры / триггеры, которыевключенный в это выполнение.

Я также пытался использовать функцию трассировки и аудита, но это слишком запутанно и показывает мне слишком много информации, которая мне не нужна.

В основном мне нужно знать, есть ли возможность отладки, как в других IDE, например, Eclipse.

Ответы [ 2 ]

3 голосов
/ 12 апреля 2019

Вероятно, это не тот ответ, который вы ищете, но он работал для меня в прошлом.

То, что я сделал вместо отладки для сбора статистики времени выполнения и потока, заключается в следующем.

В Firebird 2.5 у вас есть автономных транзакций .У меня есть хранимая процедура, которая принимает описание контекста и сообщение.Внутри SP я вставляю контекст, сообщение и временную метку в таблицу Firebird, которая считается журнальной.Я обертываю этот оператор вставки внутри «В АВТОНОМНОЙ СДЕЛКЕ».Эта транзакция немедленно зафиксирует эту транзакцию и позволит мне увидеть строки в этой таблице во время выполнения процедуры.

Вы можете фиксировать прошедшее время или другую статистику.Недостатком такого способа является то, что вам потребуется обновить хранимые процедуры и триггеры, от которых вы хотите получать информацию, поэтому в производственной системе это может быть запрещено.

2 голосов
/ 12 апреля 2019

Firebird не имеет функции отладки для хранимых процедур (кроме того, что предусмотрено трассировкой).Как указано в комментариях Arioch 'The, функция отладки IBExpert имитирует выполнение хранимых процедур, на самом деле она не выполняет их на сервере.

...