Анализируйте многозадачные программы в Polyspace

С Polyspace® можно анализировать программы где несколько потоков (задачи), запущенные одновременно.

В дополнение к регулярным проверкам на этапе выполнения анализ ищет проблемы, характерные для параллельного выполнения:

  • Гонки данных, мертвые блокировки, последовательные или недостающие блокировки и разблокировали (Средство поиска Ошибки)

  • Незащищенные совместно используемые переменные (Программа автоматического доказательства Кода)

Сконфигурируйте анализ

Если ваш код использует многозадачные примитивы от определенных семейств, например, pthread_create для создания потока:

  • В Средстве поиска Ошибки анализ обнаруживает их и извлекает вашу многозадачную модель из кода.

  • В Программе автоматического доказательства Кода необходимо включить это автоматическое обнаружение явным образом.

Смотрите автоматическое обнаружение создания потока и критического раздела в Polyspace.

В качестве альтернативы задайте свою многозадачную модель через аналитические опции. В пользовательском интерфейсе опции находятся на узле Multitasking в панели Configuration. Для получения дополнительной информации смотрите Анализ Многозадачности Polyspace Конфигурирования Вручную.

Рассмотрите результаты анализа

Средство поиска ошибки

Анализ Средства поиска Ошибки показывает дефекты параллелизма, такие как гонки данных и мертвые блокировки. Смотрите Дефекты Параллелизма.

Программа автоматического доказательства кода

Анализ Программы автоматического доказательства Кода исчерпывающе проверяет, защищены ли разделяемые глобальные переменные от параллельного доступа. Смотрите Глобальные переменные (Polyspace Code Prover).

Рассмотрите результаты с помощью сообщения на панели Result Details. Смотрите визуальное представление конфликтных операций с помощью (график) значок.

Похожие темы