Форма "Модули в 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.
Файл найден. Значит это модуль нашей разработки. Двойным щелчком делаем отметку в графе "Модуль АГБИС".
Строка скрывается, так как включен фильтр скрывать отмеченные.

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