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