Отладчик 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:
На диалоговом окне Configuration Parameters выберите Retain .rtw файл. Это предотвращает
файл от того, чтобы быть удаленным после генерации кода.model
.rtw
Выберите отладчик Start TLC при генерации кода, чтобы вызвать отладчик TLC при запуске процесса генерации кода.
Выбор Start TLC debugger when generating code эквивалентен определению опции TLC -dc
на панели Code Generation диалогового окна Configuration Parameters.
Примените изменения и запустите генерацию кода путем нажатия Ctrl+B. Это останавливается в первой линии выполненного кода TLC, врывается в отладчик командной строки TLC и отображает следующую подсказку:
TLC_DEBUG>
Можно теперь установить точки останова, исследовать содержимое файлов генератора кода и исследовать переменные в файле TLC с помощью print
который
, или whos
.
Альтернативный способ вызвать отладчик TLC от подсказки MATLAB®. (Это принимает, что вы сохранили
файл в папке проекта.), Чтобы постараться не делать ошибки, скопируйте model
.rtwtlc
команда выход процесса сборки к Окну Команды MATLAB и проблема это после добавления -dc
к той командной строке.
Полный список переключателей командной строки для отладчика TLC доступен в таблице Target Language Compiler Switches.
Таблица TLC Debugger Commands обобщает команды отладчика 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 | Замените переменную в под управлением программе. |
пропуск ["имя файла":] 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 | Отобразите содержимое стека I/O. |
list start[,end] | Перечислите линии из файла от запуска, чтобы закончиться. |
loadstate "filename" | Загрузите состояние точки останова отладчика из файла. |
next | Один шаг, не входя в функции. |
print expression | Распечатайте значение выражения TLC. Чтобы распечатать запись, необходимо задать полностью определенный осциллограф, такой как |
quit | Выйдите из отладчика TLC. Можно также выйти из отладчика путем ввода Ctrl+C в подсказке. |
run "filename" | Запустите пакетный файл команд отладчика командной строки. |
savestate "filename" | Сохраните состояние точки останова отладчика в файл. |
status | Отобразите список активных точек останова. |
step | Продвиньтесь в. |
остановка ["имя файла":] 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
очищает вторую точку останова.