мета-данные страницы
Форма "Модули в 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.pas | FIBDatabase | TFIBDatabase | CheckActive | 1196[6] |
Classes.pas | Classes | TStringList | Changed | |
FIBDatabase.pas | FIBDatabase | TFIBBase | CheckDatabase | 4567[6] |
Classes.pas | Classes | TStrings | SetTextStr | |
pFIBDataset.pas | pFIBDataSet | TpFIBDataSet | 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.
Файл найден. Значит это модуль нашей разработки. Двойным щелчком делаем отметку в графе "Модуль АГБИС".
Строка скрывается, так как включен фильтр скрывать отмеченные.