Руководство разработчика

Трассировка функций

Есть возможность включить запись в файл трассировки имен функций, а также значений параметров вызова. При выходе из функции может записываться возвращаемое значение и длительность выполнения в секундах. Для этого необходимо установить опцию Трассировка функций на закладке Документы пункта Установка/Настройки Главного меню.

Запись происходит как в режиме интерпретатора, так и в режиме выполнения кода ibx. В последнем случае в ibx-файле должна содержаться отладочная информация (имена функций).

Управление выводом информации о вызове функций осуществляется параметрами секции Trace в файле ib.ini:

[Trace]
InputParams=1
RetVal=1
Duration=1
Indent=1

Дополнительные настройки хранения параметров трассировки могут содержатся в файле deploy.ini.

По умолчанию все параметры включены. InputParams - выводить параметры (если есть) перед выполнением функции. RetVal - выводить возвращаемое значение (если есть) при выходе из функции. Duration - измерять и выводить длительность выполнения функции в секундах. Indent - использовать отступы по 2 пробела на один уровень вложенности вызова функции. Если параметры RetVal и Duration отключены, то при выходе из функции трассировка не выполняется.

Вызовы встроенных функций, за исключением функций ДОБАВИТЬ_ОПРЕДЕЛЕНИЕ, ДОБАВИТЬ_РЕКВИЗИТ и функций для расчета остатков и оборота (ОБД и т.п.), а также вызовы скрытых функций не трассируются. Вывод происходит до выполнения тела функции.

Выборочно отключить трассировку функций ДОБАВИТЬ_ОПРЕДЕЛЕНИЕ и ДОБАВИТЬ_РЕКВИЗИТ можно в файле ib.ini:

[Trace]
AddRM=0

Для отключения трассировки функций для расчета остатков и оборота используется следующий параметр:

[Trace]
Account=0

Также можно вручную указать функции, которые необходимо исключить из трассировки:

[Trace]
Excl01 = Центрировать, РазбитьНаСтроки
Excl02 = ДобСимв

Параметры ExclNN, где NN принимает значение от 01 до 99, – списки имен функций для исключения из трассировки. В одной строке может быть задано несколько имен функций через запятую.

При трассировке функций указывается библиотека, в которой реализована данная функция. Для вывода используется синтаксис вызова:

["<библиотека>"].<функция>

Для отключения трассировки перекомпиляции используется следующий параметр:

[Trace]
Recompile=0

См. также: