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