Отладчик 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:
В диалоговом окне Параметры конфигурации выберите Сохранить файл. Это препятствует
файл от удаления после генерации кода.model
.rtw
Выберите Start TLC debugger при генерации кода, чтобы вызвать TLC debugger при запуске процесса генерации кода.
Выбор Start TLC debugger when generating code эквивалентен установке опции TLC -dc
на панели Code Generation диалогового окна Параметры конфигурации.
Примените изменения и запустите генерацию кода нажатием Ctrl+B. Это останавливается в первой линии исполняемого кода TLC, взламывает отладчик командной строки TLC и отображает следующую приглашение:
TLC_DEBUG>
Теперь можно задать точки останова, исследовать содержимое файлов генератора кода и исследовать переменные в файле TLC, используя print
, which
, или whos
.
Альтернативный способ вызова отладчика TLC - из MATLAB® приглашение. (Это предполагает, что вы сохранили
файл в папке проекта.) Чтобы избежать ошибок, скопируйте model
.rtwtlc
выход команды процесса сборки в Командное окно MATLAB и выдача после добавления -dc
в эту командную строку.
Полный список ключей командной строки для отладчика TLC доступен в таблице Target Language Compiler Switches.
В таблице Команды отладчика TLC представлены команды отладчика TLC.
Чтобы получить более подробную справку по отдельным командам, используйте синтаксис
help command
из отладчика TLC, как в этом примере:
TLC-DEBUG> help clear
Можно сократить команду отладчика TLC до самой короткой уникальной формы. Для примера,
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
очищает вторую точку останова.