Motto

В тихом саду здравомыслия
Пусть на вас постоянно падают
кокосовые орехи пробужденности.
Чогьям Трунгпа РИНПОЧЕ


Версия для мобильного


четверг, 12 мая 2011 г.

Описание CnPack Wizards часть 16: Описание Relation Analyzer.

Это шестнадцатая запись в серии: Delphi эксперты: CnWizards. В прошлый раз я завершил краткий обзор утилит из CnWizards. В этот раз я подробно опишу Relation Analyzer (Тестер зависимостей).

Relation Analyzer может помочь лучше разобраться в зависимостях большого числа bpl-ок, а также изучить собранные в Delphi программы – посмотреть список использованных юнитов, например.

В этой программе есть два режима анализа:

  1. Анализ исполняемых файлов. Даёт возможность:
    • Посмотреть список необходимых для работы пакетов. Для bpl-ок это то что обычно пишется в секции requires .dpk файла. Для exe-шек – это список необходимых пакетов времени исполнения (Runtime Packages).
    • Посмотреть список необходимых для работы пакетов и библиотек (bpl и dll).
    • Посмотреть список модулей (unit) использованных при компиляции.
    • Посмотреть, в каких исполняемых файлах использовуется определённый модуль (unit).
    • Посмотреть список общих использованных модулей, для нескольких исполняемых файлов.
  2. Анализ зависимостей между бинарными файлов и исходными файлов. Даёт возможность:
    • узнать, какие модули придётся перекомпилировать после изменения interface и implemenatation частей определённого модуля. Эта опция позволяет заранее узнать, где может появится ошибка компиляции: This unit was compiled with different version of ‘xxx’.

Язык не повернётся назвать GUI этой программы простым. Поэтому, я начну описание именно с интерфейса. Хотя GUI и не такой сложный, как может быть у crm системы, предназначенной для учёта данных по огромному числу клиентов . Но всё же, разбираться с ним дольше, чем, найти земельный участок в Рязани.

Итак. При запуске программы видны 5 закладок. Назначение каждой:

  • Стартовая страница (Introduction) – содержит краткое введение в CnPack Relation Analyzer.
  • Анализ Файлов (Analyze Executable Files) – сканирование и первичный анализ исполняем��х файлов. Результаты анализа можно сохранить в .ARF файл.
  • Результаты анализа (View Analyzed Result) – загрузка ARF-файла. Просмотр информации полученной при анализе.
  • Редактирование связей (Edit Source-Module Relations) – сканирование и анализ исходных файлов, подключение к результатам анализа ARF-файла. Создание и сохранение результатов анализа в SMR-файл.
  • Просмотр связей (View Source-Module Relations) – просмотр результатов анализа по данным SMR-файла.
  • Список файлов (Files List) – создание списка файлов для использования на закладке Редактирование связей (Edit Source-Module Relations)

Анализ исполняемых файлов.

Порядок действий:

  1. Переходим на закладку Анализ Файлов (Analyze Executable Files).
  2. Кликаем по кнопке Добавить исполняемые файлы (Add Executale Files).
  3. Открывается диалог Открыть файлы (Open Files).
  4. Выделяем файлы которые хотим проанализировать (exe, dll, bpl).
  5. Нажимаем кнопку “Open” в диалоге Открыть файлы (Open Files).
  6. Файлы добавляются в список Файлы для анализа (Files to Analyze).
  7. Нажимаем кнопку Анализировать все файлы (Analyze All Files), чтобы проанализировать все добавленные файлы.
  8. Нажимаем на кнопку Сохранить результаты анализа (Save Analyzed Result) и сохраняем результаты анализа в ARF-файл. Это необходимо для того, чтобы продолжить работу с этими файлами на закладке Результаты анализа (View Analyzed Result).

На скриншоте виден пример анализа системных пакетов Delphi XE.

Добавление файлов для анализа в CnPack Relation Analyzer

Закладка Результаты анализа (View Analyzed Result).

Именно здесь можно изучить результаты анализа. Для этого необходимо загрузить ARF-файл, созданный ранее (на закладке Анализ Файлов (Analyze Executable Files)).

На закладке Результаты анализа расположены 3 дополнительные закладки:

  1. По исполняемому файлу (View by Executable Files). Здесь можно посмотреть зависимости для каждого проанализированного бинарного файла. На этой закладке доступна следующая информация:
    1. Какие юниты содержит бинарный файл.
    2. Какие бинарные файлы необходимы этому файлу для работы.
    3. Какие бинарные файлы требуют этот файл для работы.
  2. По модулю (View by Units). Здесь в качестве главного критерия для анализа выступает модуль (unit). Тут можно посмотреть, какие бинарные файлы зависят от выделенного модуля.
  3. Совпадающие модули (Duplicated Units). Здесь можно увидеть, какие совпадающие модули используются в двух или более бинарных файлах.

Скриншот: Анализ по исполняемому файлу.

Результаты анализа по исполняемому файлу

Скриншот: Анализ по модулю.

Результаты анализа по модулю

Скриншот: Поиск совпадающих модулей.

Скриншот: Поиск совпадающих модулей

 

Анализ с помощью исходных файлов

Здесь алгоритм работы такой:

  1. Сначала надо создать текстовый файл со списоком исходных файлов. Это можно сделать на закладке Список файлов (Files List), или с помощью shell-команды: dir *.pas;*.dfm /b /s >MyFileList.txt
  2. Далее надо перейти на закладку Редактирование связей (Edit Source-Module Relations). Здесь нужно создать новый SRM-файл, на основе списка файлов, подготовленного в 1-м пункте.
  3. Далее здесь же надо загрузить созданный ранее ARF-файл.
  4. После чего нажать на кнопку Автозаполнение (Auto Fill Data) и выбрать пункт Заполнить все связи (Fill All Source-Module Relations).
  5. Результаты анализа нужно сохранть в SRM-файл.
  6. Для просмотра результатов анализа можно перейти на закладку Просмотр связей (View Source-Module Relations).

Скриншот: Создание списка файлов для анализа связей.

Создание списка файлов для анализа связей

Скриншот: Анализ зависимостей на основании списка исходных файлов.

Анализ зависимостей на основании списка исходных файлов

Официальные сайты проекта CnPack Wizards: www.cnpack.org и Google Code.

Комментариев нет:

Отправить комментарий

Постоянные читатели