Форма "Модули в Call Stack"

Предназначена для редактирования для редактирования таблицы "SrcExclude". Эта таблица влияет на импорт полей exceptions.CSModule, exceptions.CSSource, exceptions.CSClass, exceptions.CSProcedure, exceptions.CSLineProc
Окно открывается в «Менеджере проектов» на вкладке «Исключения» кнопкой «Модули в Call Stack».

Кнопка «Помощь» открывает текущий документ.

Графы таблицы

  • «ID» - ID записи таблицы "SrcExclude".
  • «Файл модуля» - значение из графы Calls Stack «Источник»
  • «Наименование модуля» - значение из графы Calls Stack «Модуль»
  • «Модуль АГБИС» - модуль разработан командой АГБИС
  • «Внешний модуль» - модуль внешних разработчиков

Основные понятия

При импорте данных в таблицу таблицу "exceptions" проверяются строки Calls Stack.
Например, Calls Stack может выглядеть следующим образом

Источник Модуль Класс Функция/метод Строка
fib.pas fib FIBError 406[1]
FIBDatabase.pasFIBDatabaseTFIBDatabase CheckActive 1196[6]
Classes.pas Classes TStringList Changed
FIBDatabase.pasFIBDatabaseTFIBBase CheckDatabase 4567[6]
Classes.pas Classes TStrings SetTextStr
pFIBDataset.paspFIBDataSetTpFIBDataSet Prepare 814[3]
TmpQuery.pas TmpQuery CreateTempQuery 221[14]

Тогда для каждой строки ищется запись в таблице SrcExclude, для которой «Файл модуля»=«Источник» и «Наименование модуля»=«Модуль» (SrcExclude.CSSource='fib.pas' и SrcExclude.CSSource='fib').
Если запись не найдена, то добавляется новая запись с пустыми полями «Модуль АГБИС» и «Внешний модуль» (SrcExclude.IS_Agbis, SrcExclude.IS_External).
– Внешний модуль

При выключенных настройках фильтра «Модули АГБИС» и «Внешние модули» таблица содержит список всех новых модулей, которые еще не определены как внешние или наши.
В идеале список при выбранных значения фильтра должен быть пустой.

Если в ней отображаются записи, то берем имя файла из графы «Файл модуля» и запускаем процесс поиска файла среди исходных файлов. Если файл найден среди модулей АГБИС, то ставим отметку в графе «Модули АГБИС», иначе ставим отметку в графе «Внешние модули».

Таблица SrcExclude влияет на идентификацию исключения.
При импорте в таблицу таблицу "exceptions" выполняется поиск среди уже зарегистрированных исключений. Если запись найдена, то увеличивается счетчик количества исключений. Если запись не найдена, то добавляется новая запись в таблицу таблицу "exceptions".

Для идентификации записи исключения используются поля:

  • «Тип ошибки»
  • «Сообщение об ошибке»
  • «Наименование исполняемого модуля»
  • «Файл модуля»
  • «Наименование модуля»
  • «Наименование класса объектов программы»
  • «Наименование процедуры/метода»
  • «Номер строки в коде процедуры»

«Файл модуля» и «Наименование модуля» ищутся с учетом SrcExclude.
В нашем примере, непосредственно ошибка произошла в модуле fib.pas в процедуре FIBError.
Однако это внешняя библиотека, в которой мы править ничего не будем.
Ищем наш модуль, который породил ошибку: TmpQuery процедура CreateTempQuery.
Таким образом модули fib.pas, FIBDatabase.pas, Classes.pas, FIBDatabase.pas должны быть отмечены как внешние, а модуль TmpQuery.pas должен быть отмечен как модуль АГБИС.

Операции


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

Открываем Total Commander и запускаем поиск файла в папке _Projects.
Файл не найден. Значит это внешний файл. Двойным щелчком делаем отметку в графе «Внешний модуль».
Строка скрывается, так как включен фильтр скрывать отмеченные.

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

В Total Commander запускаем поиск файла в папке _Projects.
Файл найден. Значит это модуль нашей разработки. Двойным щелчком делаем отметку в графе «Модуль АГБИС».
Строка скрывается, так как включен фильтр скрывать отмеченные.

Дополнительная информация