В этом разделе описывается, как фильтровать, группировать и управлять результатами в пользовательском интерфейсе десктопных продуктов Polyspace. Для аналогичного рабочего процесса в веб-интерфейсе Доступ смотрите Фильтрация и сортировка результатов в Polyspace Access Web Interface (Polyspace Bug Finder Access).
Когда вы открываете результаты Polyspace® анализ, вы видите плоский список дефектов (Bug Finder), проверки во время выполнения (Code Prover), нарушения правил кодирования или другие результаты. Чтобы организовать проверку, можно сузить список или группу результатов по файлам или типам результатов.
Некоторые из способов использовать фильтрацию:
Можно просматривать определенные типы дефектов или только проверки во время выполнения.
Например, в Bug Finder можно отобразить только высокоударные дефекты. См. Классификация дефектов по влиянию.
Отображать можно только новые результаты, найденные со времени последнего анализа.
Отображать можно только те результаты, которые не оправданы.
Для получения информации о обосновании смотрите Адрес результатов Polyspace посредством исправлений ошибок или обоснований.
Фильтровать можно с помощью столбцов на панели Results List. Щелкните значок в заголовках столбцов, чтобы увидеть доступные фильтры. Для получения информации о столбцах смотрите:
Список результатов (Polyspace Code Prover)
Результаты, найденные со времени последнего анализа, появляются со звездочкой (*
) рядом с ними. Чтобы просмотреть только эти результаты с момента последнего анализа, нажмите кнопку New. Обратите внимание, что при запуске анализа в командной строке (или даже при первом запуске анализа в интерфейсе пользователя) необходимо сначала импортировать из предыдущего анализа, чтобы создать базовый уровень для кнопки New. Смотрите Сведения об импорте из предыдущего анализа Polyspace.
Если вы не хотите фильтровать по точному содержимому столбца, можно использовать вместо этого пользовательский фильтр. Например, необходимо отфильтровать подпапки определенной папки. Вместо фильтрации каждой подпапки в Folder столбце в выпадающем списке фильтров выберите Custom. Укажите имя корневой папки для doesn’t contain
фильтр.
Для пользовательского фильтра можно использовать символы подстановки. Подстановочный символ ?
представляет 0 или 1 символ и *
представляет 0 или более символов.
Если применить фильтры таким образом, они переносятся на следующий анализ. Можно также назвать и сохранить подмножество фильтров для использования в нескольких проектах. Чтобы применить именованный набор фильтров, выберите этот набор фильтров из списка All results. Чтобы создать новую запись в этом списке, выберите Tools > Preferences и создайте свой собственный набор фильтров на вкладке Review Scope.
Для фильтрации результатов можно щелкнуть графики на панели Dashboard. Для образца:
Чтобы увидеть только высокоэффективные дефекты в Bug Finder, щелкните соответствующий раздел < reservedrangesplaceholder0 > графика.
Чтобы увидеть только красные проверки в Code Prover, щелкните соответствующий раздел < reservedrangesplaceholder0 > графика.
Чтобы увидеть все результаты снова, щелкните ссылку View all results in this scope.
Оранжевый источник может вызвать несколько оранжевых проверок в Code Prover. Можно просмотреть все оранжевые проверки из одного и того же источника и просмотреть их вместе.
Для образца в этом коде неизвестное значение input
может вызвать переполнение и деление на нули. Переменная input
источник оранжевого цвета, который вызывает две проверки оранжевого цвета.
void func (int input) { int val1; double val2; val1 = input++; val2 = 1.0/input; }
Для начала выберите Window > Show/Hide View > Orange Sources. Вы видите список оранжевых источников. Выберите оранжевый источник, чтобы увидеть все оранжевые проверки, поступающие из этого источника.
В заголовке Results List отображается количество результатов в формате Showing x
/ y
для образца Showing 100/250. Щелкните выпадающий список рядом с этим номером, чтобы увидеть фильтры, которые в данный момент активны. Можно также удалить активные фильтры из этого выпадающего списка (все, кроме именованного набора фильтров, выбранных из выпадающего списка All results).
Вы видите следующую информацию о фильтрах:
Review Scope: Если вы выбираете именованный набор фильтров из выпадающего списка All results, вы видите этот набор фильтров.
New results only: Если вы используете кнопку New, чтобы увидеть только новые результаты, вы видите, что этот фильтр включен.
Filtered results: Вы видите количество результатов, отфильтрованных в пользовательском интерфейсе Polyspace (любым способом: список результатов, панель мониторинга или оранжевые источники).
Hidden results: Вы видите количество результатов, скрытых с помощью аннотаций кода. Чтобы скрыть эти результаты, очистите Hide results justified in code.
Для получения информации о скрытии результатов через аннотации кода смотрите Адрес Polyspace Результаты Through Bug Исправления или Обоснования.
Columns with active filters: Вы видите столбцы на панели Results List (или столбцы, соответствующие графикам на панели Dashboard), которые вы использовали для фильтрации результатов.
На панели Results List в списке выберите опцию, например, группировку по файлам. Также можно щелкнуть заголовок столбца, чтобы отсортировать содержимое столбца в алфавитном порядке.
Доступные опции для группировки:
None: Показывает результаты без группировок.
Family: Показывает результаты, сгруппированные по типам результатов.
Результаты организованы по типам: проверки (Code Prover), дефекты (Bug Finder), глобальные переменные (Code Prover), нарушения правил кодирования, метрики кода. Внутри каждого типа они сгруппированы далее.
Дефекты (Bug Finder) организованы группами дефектов. Дополнительные сведения о группах см. в разделе Дефекты.
Проверки (Code Prover) сгруппированы по цвету. В каждом цвете проверки организованы по контрольной группе. Для получения дополнительной информации о группах смотрите Проверки во время выполнения (Polyspace Code Prover).
Глобальные переменные (Code Prover) сгруппированы по их использованию. Для получения дополнительной информации смотрите Глобальные переменные (Polyspace Code Prover).
Нарушения правил кодирования сгруппированы по типам правил кодирования. Для получения дополнительной информации см. «Стандарты кодирования».
Метрики кода сгруппированы по возможностям метрики. Для получения дополнительной информации см. Раздел «Метрики кода».
File: Показать результаты, сгруппированные по файлам.
В каждом файле результаты сгруппированы по функциям. Результаты, не связанные с определенной функцией, сгруппированы под File Scope.
В Code Prover имя файла или функции показывает худший цвет проверки в файле или функции. Тяжесть проверочного цвета уменьшается в порядке: красный, серый, оранжевый, зеленый.
Class (только для кода С++): Показывает результаты, сгруппированные по классам.
В каждом классе результаты сгруппированы по методам. Результаты, не связанные с конкретным классом, сгруппированы под Global Scope.