Панель Watch
View > Watch - показать или скрыть эту панель. См. также: Отладка
У этой панели есть связанная страница настроек TIDE Preferences (File > TIDE Preferences -> IDE -> Watch and Locals).

Список наблюдения может содержать переменные и выражения. Возможность вычислять выражения исключительно полезна. Например, можно ввести c_arr[f], и вы увидите значение элемента f массива c_arr.
Добавить запись в список можно несколькими способами:
Выберите Debug > Add to Watch List- В исходном коде щёлкните переменную правой кнопкой и выберите Add to Watch List
- Дважды щёлкните в любом пустом месте панели Watch
- Нажмите [INSERT], когда фокус находится в панели Watch
Записи списка можно перетаскивать, меняя их порядок.
Чтобы изменить запись, дважды щёлкните имя переменной (или выражение) в поле Name or Expression.
Значения переменных и выражений обновляются каждый раз, когда VM выходит из состояния RUN . Записи, значение которых изменилось с прошлого обновления, выделяются красным. Для перечислений значения отображаются вместе с соответствующими константами.
Значения переменных можно менять прямо в панели Watch - для этого дважды щёлкните текущее значение и отредактируйте его.
Значения выражений в панели Watch изменить нельзя.
Значения свойств объектов также можно просматривать и редактировать в панели Watch.
Области видимости в Watch
Если VM находится в состоянии BREAK (то есть вы находитесь внутри исполняемого кода), Watch рассматривает список переменных в панели Watch с точки зрения контекста (области видимости), в котором находится (жёлтый) указатель выполнения.
Пример: вы находитесь внутри обработчика события on_sys_timer, в котором есть переменная x. Есть также глобальная переменная с таким же именем. Поскольку указатель выполнения внутри обработчика, панель Watch истолкует запись x как относящуюся к локальной области on_sys_timer.

Легко запутаться в областях видимости при работе с подсказками Watch.
Допустим, в вашем коде две процедуры, и в обеих есть локальная переменная f. (Жёлтый) указатель выполнения находится в foo(), а вы наводите курсор на переменную с таким же именем в moo().
Что вы увидите? Всё равно значение f из foo(), хотя курсор находится в другой процедуре. Дело в том, что именно эта область сейчас локальная - f из moo() в данный момент фактически не существует!
TIDE даже предупредит вас, добавив сообщение: This value might belong to a variable from a different scope (это значение может принадлежать переменной из другой области видимости).

Если VM находится в состоянии PAUSE (то есть никакой код не выполняется), у Watch есть только глобальная область видимости.
Переключение области видимости через панель Call Stack
Двойной щелчок по любой записи в панели Call Stack переносит вас в соответствующее место исходного кода (оно выделяется синим) и одновременно меняет область видимости, которую использует Watch. То есть область видимости Watch переключается на область того места, по которому вы дважды щёлкнули в панели Call Stack.
Правила интерпретации выражений Tibbo BASIC и C
Панель Watch по необходимости двуязычна. Она понимает и Tibbo BASIC, и C.
Простые типы переменных совместимы между Tibbo BASIC и C. Переменная unsigned char в C в BASIC называется byte. Оба названия обозначают один и тот же тип данных.
Если выполнение остановлено в состоянии BREAK внутри кода Tibbo BASIC, Watch рассматривает простые переменные (и выражения, включающие только простые переменные) с точки зрения Tibbo BASIC. Для простой переменной в поле Interpreted as будет указано BASIC, а в поле Type тип переменной будет записан в нотации Tibbo BASIC (то есть byte, char, word и так далее).
Если BREAK происходит внутри кода Tibbo C, Watch рассматривает простые переменные (и выражения, включающие только простые переменные) с точки зрения Tibbo C. Для той же простой переменной в поле Interpreted as будет указано C, а в поле Type будет использована нотация C (то есть unsigned char, char, unsigned int и т. д.).
Сказанное верно даже для глобальных простых переменных. Даже если такая переменная определена в Tibbo C, она будет «интерпретироваться как» переменная Tibbo BASIC, если выполнение останавливается (BREAK) внутри кода Tibbo BASIC (и наоборот).
Если выполнение находится в состоянии PAUSE , то есть никакой код не выполняется вовсе, Watch не может применить это правило для выбора режима интерпретации простых переменных. Вместо этого Watch ориентируется на текущее положение курсора |.
Если открытый в данный момент исходный файл - файл Tibbo BASIC, Watch использует интерпретацию Tibbo BASIC. Если открытый исходный файл - файл Tibbo C, Watch использует интерпретацию Tibbo C.
С массивами, структурами и объединениями ситуация иная.
Массивы и типы Tibbo BASIC (структуры BASIC) несовместимы с массивами и структурами Tibbo C. Интерпретации C для них не существует.
Для таких переменных и выражений с ними Watch всегда использует единственную доступную интерпретацию. Для массивов и типов Tibbo BASIC (и выражений с ними) Watch всегда использует интерпретацию BASIC. Для массивов, типов и объединений Tibbo C (и выражений с ними) Watch всегда использует интерпретацию BASIC.
Вот интересный пример.
Переменная-массив c_arr определена в Tibbo C, а выполнение сейчас приостановлено в коде Tibbo BASIC.
Вы хотите добавить в Watch запись, показывающую значение элемента f массива c_arr.
Что нужно ввести - c_arr(f), как требует Tibbo BASIC, или c_arr[f] , как принято в Tibbo C? Верен вариант Tibbo C!
Поскольку c_arr определён в Tibbo C (BASIC не понимает массивы C), Watch истолкует это выражение как выражение C. Поэтому для обращения к элементу массива нужно использовать синтаксис C.
Запись будет и дальше показываться в интерпретации C, где бы ни произошёл BREAK.