exponenta event banner

Использование отладчика TLC

Отладчик TLC помогает идентифицировать ошибки программирования в коде TLC. С помощью отладчика можно последовательно выполнять код TLC, анализировать и/или изменять переменные в указанной области блока и просматривать стек вызовов TLC. Отладчик TLC имеет интерфейс командной строки, который предоставляет команды, аналогичные стандартным инструментам отладки, таким как dbx или gdb.

Советы по отладке кода TLC

Вот несколько советов, которые помогут вам отладить код TLC:

  1. Чтобы увидеть полный стек вызовов TLC, поместите следующую инструкцию в код TLC перед строкой, на которую указывает сообщение об ошибке. Это поможет сузить вашу проблему.

    %setcommandswitch "-v1"
  2. Чтобы отследить значение переменной в функции, поместите следующий оператор в файл TLC:

    %trace This is in my function %<variable>

    Сообщение появится при запуске компилятора целевого языка с -v командный переключатель, но не иначе. Вы можете использовать %warning вместо %trace для печати переменных, но после отладки необходимо удалить или прокомментировать такие строки.

  3. Используйте файлы журнала покрытия TLC для определения частей кода, которые не были достигнуты.

Вызов отладчика

Используйте отладчик TLC для выявления ошибок и потенциальных проблем в файлах TLC. Для использования отладчика TLC:

  1. В диалоговом окне «Параметры конфигурации» выберите «Сохранить файл .rtw». Это предотвращает model.rtw из удаляемого файла после создания кода.

  2. Выберите Start TLC debugger при создании кода, чтобы вызвать TLC debugger при запуске процесса создания кода.

    Выбор команды Start TLC debugger при создании кода эквивалентен указанию параметра TLC -dc на панели «Создание кода» диалогового окна «Параметры конфигурации».

  3. Примените изменения и начните создание кода, нажав клавиши Ctrl + B. Это останавливается в первой строке выполненного кода TLC, врывается в отладчик командной строки TLC и выводит следующую подсказку:

    TLC_DEBUG>

Теперь можно задавать точки останова, исследовать содержимое файлов генератора кода и исследовать переменные в файле TLC с помощью print, which, или whos.

Альтернативный способ вызова отладчика TLC - из подсказки MATLAB ®. (Это предполагает, что вы сохранили model.rtw файл в папке проекта.) Чтобы избежать ошибок, скопируйте tlc вывод команды процесса сборки в окно команд MATLAB и выдача ее после добавления -dc к этой командной строке.

Полный список коммутаторов командной строки для отладчика TLC можно найти в таблице Коммутаторы компилятора целевого языка.

Сводка команд отладчика TLC

В таблице TLC Debugger Commands представлены команды отладки TLC.

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

help command

из отладчика TLC, как в этом примере:

TLC-DEBUG> help clear

Команду TLC debugger можно сократить до самой короткой уникальной формы. Например,

TLC-DEBUG> break warning

может быть сокращено до

TLC-DEBUG> br warning

Для просмотра полного списка команд отладчика TLC введите help на TLC-DEBUG> подсказка.

Команды отладчика TLC

КомандаОписание
assign variable=value

Изменение переменной в выполняющейся программе.

break ["filename":]line|error|warning|
trace|function

Установка точки останова. См. также директиву% breakpoint.

clear [breakpoint#|all]

Удаление точки останова.

condition [breakpoint#] [expression]

Присоедините условие к точке останова.

continue ["filename":]line|function

Продолжить из точки останова.

disable [breakpoint#]

Отключить точку останова.

down [n]

Двигайтесь вниз по стеку.

enable [breakpoint#]

Включите точку останова.

finish

Прервать после выполнения текущей функции.

help [command]

Получение справки по команде.

ignore [breakpoint#]count

Установка счетчика игнорирования точки останова.

iostack

Отображение содержимого стека ввода-вывода.

list start[,end]

Список строк из файла от начала до конца.

loadstate "filename"

Загрузка состояния точки останова отладчика из файла.

next

Один шаг без перехода к функциям.

print expression

Печать значения TLC-выражения. Для печати записи необходимо указать полную область, например CompiledModel.System[0].Block[0].

quit

Закройте отладчик TLC. Также можно выйти из отладчика, нажав Ctrl + C по запросу.

run "filename"

Запустите пакетный файл команд отладки командной строки.

savestate "filename"

Сохранение состояния точки останова отладчика в файл.

status

Отображение списка активных точек останова.

step

Ступай в.

stop ["filename":]line|error|warning|trace|
function

Установка точки останова (такой же, как break).

tbreak ["filename":]line|function

Установка временной точки останова.

thread [n]

Изменение активного потока на поток #n (0 - номер потока основной программы).

threads

Перечислите текущие активные потоки выполнения TLC.

tstop ["filename":]line|function

Установка временной точки останова.

up [n]

Двигайтесь вверх по стеку.

where

Показать активные цепочки выполнения.

which name

Найдите имя и отобразите, из какой области оно исходит.

whos [::|expression]

Перечислите переменные в данной области.

Директива точки останова%

В качестве альтернативы break , можно встроить точки останова в расположение файла TLC, добавив директиву

%breakpoint

Примечания по использованию

При использовании break или stop, использовать

  • error для прерывания или остановки при ошибке

  • warn для разрыва или остановки при предупреждении

  • trace для разрыва или остановки трассировки

Например, если необходимо прервать работу при ошибке, используйте

TLC_DEBUG> break error

При использовании clear, получить статус точек останова с помощью status и очистить определенные точки останова. Например,

TLC-DEBUG> break "foo.tlc":46
TLC-DEBUG> break "foo.tlc":25
TLC-DEBUG> status
Breakpoints:
[1] break File: foo.tlc Line: 46
[2] break File: foo.tlc Line: 25
TLC-DEBUG> clear 2

В этом примере: clear 2 очищает вторую точку останова.

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