Вместо того чтобы анализировать эту информацию в каждом проекте, где используются библиотеки, создается один базовый проект, который может использоваться в любом другом проекте. Базовый проект вносится в список базовых проектов.
Если анализатор не находит нужного файла в каталогах из списка каталогов проекта, он ищет его в базовом проекте. Если базовых проектов несколько, они просматриваются в порядке включения в список.
Для добавления базового проекта в анализаторе кода С++:
1. Щелкните по кнопке Base (Базовый проект), чтобы открыть диалоговое окно Base Project (Базовый проект) — см. рис. А.11.
2. Найдите каталог с нужным базовым проектом.
3. Щелкните по файлу проекта в списке файлов.
4. Щелкните по кнопке Add (Добавить), чтобы добавить проект в список базовых проектов.
Анализатор классифицирует файлы по трем типам — тип 1, тип 2 и тип 3. Когда файл добавляется в список файлов проекта, он относится к категории первого типа. Файлы этого типа являются семантически завершенными и независимыми от контекста. То есть файл включает список завершенных деклараций на языке С++ и либо содержит в себе всю необходимую информацию, либо получает информацию из директив #include. Файлы второго типа являются семантически завершенными, но зависимыми от контекста. То есть файл включает список завершенных деклараций на языке С++, но при этом содержит символы, определяемые по контексту, в который включен файл. Файлы третьего типа — семантически незавершенные и всегда обрабатываются в том случае, когда встречаются.
Изменение типа анализа в анализаторе кода С++ осуществляется следующим образом:
1. Из списка файлов выберите файл, щелкнув по нему мышью.
2. Выберите нужный тип файла в меню Action => Set Туре (Действие => Установить тип).
Анализатор кода С++ может обрабатывать один файл или группу файлов. Он создает и хранит информацию об анализе в отдельном файле данных для каждого обработанного файла. Эти данные используются при очередном анализе исходного файла. После обработки статус файла в списке файлов обновляется. Файлу могут присваиваться следующие статусы:
Неизвестный (Unknown): файл не обрабатывался анализатором;
Устаревшие данные (Stale Data): файл содержит потенциально устаревшие данные;
Проанализирован (Analyzed): файл успешно обработан анализатором. Этот статус присваивается только исходным файлам первого и второго типа;
С циклическим кодом (CodeCycled): файл успешно обработан анализатором и содержит сведения, защищающие информацию в коде от перезаписи. Этот статус присваивается только исходным файлам первого и второго типа;
Исключен (Excluded): это файл третьего типа, который анализируется каждый раз, когда встречается в другом файле;
Содержит ошибки (Has Errors): при анализе файла обнаружены ошибки в исходном коде;
Отсутствует (No Source): невозможно найти файл в файловой системе;
Не проанализирован (Unanalyzed): для этого файла невозможно найти файл данных.
Чтобы проанализировать файлы в анализаторе кода С++:
1. Укажите тип для каждого анализируемого файла.
2. Выделите файлы в списке файлов.
3. Выберите команду меню Action => Analyze
(Действие => Анализировать) для анализа файлов или команду Action => CodeCycle (Действие => Анализировать с циклическим кодом) для анализа с внесением сведений для Rational Rose.Окно анализатора с информацией о состоянии анализа показано на рис. А.12.
Рис. А. 12. Статус
Анализатор выводит все ошибки в окне Log
(Журнал). Их также можно просмотреть, если дважды щелкнуть мышью по файлу в списке файлов. Каждую ошибку нужно оценить по степени важности. Приведу некоторые типичные ошибки:Неразрешенная ссылка (Unresolved reference): анализатор не смог найти исходный файл, на который указывает ссылка. Для устранения такой ошибки в список каталогов проекта необходимо добавить каталог с файлом, указанным в ссылке;
Незнакомое расширение языка (Missing language extension): расширение языка не опознано анализатором. Для устранения этой ошибки расширение языка должно быть определено в проекте как символ;
Контекстно-зависимый исходный файл (Context-sensitive source file): используется код из других каталогов, не включенный в данный файл. Для устранения ошибки измените файл на второй или третий тип.
Окно анализатора со списком ошибок, выявленных при анализе, показано па рис. А.13.