Переменный доступ

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

Чтобы открыть эту панель, в Polyspace® выберите кнопку на панели Result Details.

Для каждой переменной и каждого доступа для чтения/записи панель Variable Access содержит соответствующие атрибуты. Для переменных в этой таблице перечислены различные атрибуты.

ПризнакОписание
Variables

Имя переменной

FileИсходный файл, содержащий объявление переменной
Values

Значение (или область значений значений) переменной

Этот столбец пуст для переменных.

# ReadsКоличество чтений переменной
# WritesКоличество раз, когда переменная записана
Written by taskИмя задач записи в переменную
Read by taskИмя переменной чтения задач
Protection

Защищена ли общая переменная от параллельного доступа

(Заполняется только Usage если в столбце есть запись, Shared)

Возможные значения в этом столбце:

  • Critical Section: Если переменная доступна в критическом разделе кода

  • Temporal Exclusion: Если переменная доступна во взаимоисключающих задачах

Для получения дополнительной информации об этих записях смотрите Multitasking.

UsageShared, если переменная разделяется между задачами; в противном случае пусто
LineНомер линии объявления переменной
ColНомер столбца (количество символов от начала линии) объявления переменной
Data TypeТип данных переменной (типы данных C/C + + или структуры/классы)

Дважды кликните имя переменной, чтобы просмотреть операции чтения/записи доступа к переменной. Символы стрелки и на панели Variable Access указывают функции, выполняющие доступ для чтения и записи, соответственно, для глобальной переменной. Аналогично, задачи, выполняющие доступ для чтения и записи, обозначены символами и соответственно. Для получения дополнительной информации о задачах смотрите Tasks (-entry-points).

Для использований доступа к переменных в этой таблице перечислены различные атрибуты, описанные на панели.

ПризнакОписание
Variables

Имена функции (или задачи), выполняющей доступ для чтения/записи переменной

Values

Значение или область значений значений переменной в функции или задаче, выполняющей доступ для чтения/записи

Этот столбец пуст для переменных.

Written by taskТолько для задач: Имя задачи, выполняющей доступ на запись для переменной
Read by taskТолько для задач: Имя задачи, выполняющей чтение доступа к переменной
LineНомер линии, где функция или задача обращается к переменной
ColНомер столбца, в котором функция или задача обращается к переменной
File

Исходный файл, содержащий операцию доступа к переменной

Если этот столбец содержит имя __polyspace__stdstubs.c, это указывает, что переменная доступна в функции стандартной библиотеки.

Для примера рассмотрим глобальную переменную, SHR2:

Функция, Tserver, в файле, tasks1.c, выполняет две операции записи на SHR2. Это обозначается на панели Variable Access двумя образцами Tserver() под переменной, SHR2, отмеченный. Точно так же два доступа к записи по задачам, server1 и server2, также перечислены под SHR2 и отмечены.

Цветовая схема для переменных на панели Variable Access:

  • Черный: глобальная переменная.

  • Orange: глобальная переменная, совместно используемая между задачами без защиты от параллельного доступа.

  • Зеленый: глобальная переменная, совместно используемая между задачами и защищенная от параллельного доступа.

  • Серый: глобальная переменная, объявленная, но не используемая в достижимом коде.

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

Информация о глобальных переменных и операциях доступа для чтения/записи, полученных из панели Variable Access, называется словарем данных.

Можно также выполнить следующие действия из панели Variable Access.

  •  Просмотр графика доступа

  •  Просмотр структурированных переменных

  •  Просмотр использований с анонимными переменных

  •  Просмотр доступа через глобальные указатели

  •  Показать/скрыть вызывающих абонентов и тележек

  •  Скрыть доступ в недоступном коде

  •  Ограничения