exponenta event banner

Анализ многозадачных программ в многозадачном пространстве

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

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

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

  • Незащищенные общие переменные (средство проверки кода)

Настройка анализа

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

  • В Bug Finder анализ обнаруживает их и извлекает модель многозадачности из кода.

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

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

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

Обзор результатов анализа

Поиск ошибок

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

Проверка кода

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

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

Связанные темы