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

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

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

АтрибутОписание
Variables

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

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

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

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

# ReadsЧисло раз переменная читается
# WritesЧисло раз переменная записано
Written by taskИмя задач, пишущих на переменной
Read by taskИмя переменной чтения задач
Protection

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

(Заполненный только, когда столбец Usage имеет запись, Shared),

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

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

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

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

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

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

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

АтрибутОписание
Variables

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

Values

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  •  Просмотрите операции на переменных без имени

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

  •  Покажите/Скройте Вызывающим сторонам и Вызываемым

  •  Скройте доступ в недостижимом коде

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