Отладчик TLC помогает идентифицировать ошибки программирования в коде TLC. С помощью отладчика можно последовательно выполнять код TLC, анализировать и/или изменять переменные в указанной области блока и просматривать стек вызовов TLC. Отладчик TLC имеет интерфейс командной строки, который предоставляет команды, аналогичные стандартным инструментам отладки, таким как dbx или gdb.
Вот несколько советов, которые помогут вам отладить код TLC:
Чтобы увидеть полный стек вызовов TLC, поместите следующую инструкцию в код TLC перед строкой, на которую указывает сообщение об ошибке. Это поможет сузить вашу проблему.
%setcommandswitch "-v1"
Чтобы отследить значение переменной в функции, поместите следующий оператор в файл TLC:
%trace This is in my function %<variable>
Сообщение появится при запуске компилятора целевого языка с -v командный переключатель, но не иначе. Вы можете использовать %warning вместо %trace для печати переменных, но после отладки необходимо удалить или прокомментировать такие строки.
Используйте файлы журнала покрытия TLC для определения частей кода, которые не были достигнуты.
Используйте отладчик TLC для выявления ошибок и потенциальных проблем в файлах TLC. Для использования отладчика TLC:
В диалоговом окне «Параметры конфигурации» выберите «Сохранить файл .rtw». Это предотвращает из удаляемого файла после создания кода.model.rtw
Выберите Start TLC debugger при создании кода, чтобы вызвать TLC debugger при запуске процесса создания кода.
Выбор команды Start TLC debugger при создании кода эквивалентен указанию параметра TLC -dc на панели «Создание кода» диалогового окна «Параметры конфигурации».
Примените изменения и начните создание кода, нажав клавиши Ctrl + B. Это останавливается в первой строке выполненного кода TLC, врывается в отладчик командной строки TLC и выводит следующую подсказку:
TLC_DEBUG>
Теперь можно задавать точки останова, исследовать содержимое файлов генератора кода и исследовать переменные в файле TLC с помощью print, which, или whos.
Альтернативный способ вызова отладчика TLC - из подсказки MATLAB ®. (Это предполагает, что вы сохранили файл в папке проекта.) Чтобы избежать ошибок, скопируйте model.rtwtlc вывод команды процесса сборки в окно команд MATLAB и выдача ее после добавления -dc к этой командной строке.
Полный список коммутаторов командной строки для отладчика 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| | Установка точки останова. См. также директиву% 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-выражения. Для печати записи необходимо указать полную область, например |
quit | Закройте отладчик TLC. Также можно выйти из отладчика, нажав Ctrl + C по запросу. |
run "filename" | Запустите пакетный файл команд отладки командной строки. |
savestate "filename" | Сохранение состояния точки останова отладчика в файл. |
status | Отображение списка активных точек останова. |
step | Ступай в. |
stop ["filename":]line|error|warning|trace| | Установка точки останова (такой же, как |
tbreak ["filename":]line|function | Установка временной точки останова. |
thread [n] | Изменение активного потока на поток |
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 очищает вторую точку останова.