Используя отладчик 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. На диалоговом окне Configuration Parameters выберите Retain .rtw файл (Simulink Coder). Это препятствует тому, чтобы файл model.rtw был удален после генерации кода.

  2. Выберите отладчик Start TLC при генерации кода (Simulink Coder), чтобы вызвать отладчик TLC при запуске процесса генерации кода.

    Выбор Start TLC debugger when generating code эквивалентен определению опции TLC -dc на панели Code Generation диалогового окна Configuration Parameters.

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

    TLC_DEBUG>

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

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

Полный список переключателей командной строки для отладчика TLC доступен в таблице Target Language Compiler Switches.

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

Таблица 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 |
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

Отобразите содержимое стека I/O.

list start[,end]

Перечислите строки из файла от запуска, чтобы закончиться.

loadstate "filename"

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

next

Один шаг, не входя в функции.

print expression

Распечатайте значение выражения TLC. Чтобы распечатать запись, необходимо задать полностью определенный осциллограф, такой как CompiledModel.System[0].Block[0].

quit

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

run "filename"

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

savestate "filename"

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

status

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

step

Продвиньтесь в.

остановка ["имя файла":] line|error|warning|trace |
функция

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

tbreak ["filename":]line|function

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

thread [n]

Изменитесь активный поток, чтобы распараллелить #n (0 номер потока основной программы).

threads

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

tstop ["filename":]line|function

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

up [n]

Переместите стек вверх.

where

Покажите в настоящее время активные цепочки выполнения.

which name

Ищите имя и отобразите то, что определяет объем его, прибывает из.

whos [::|expression]

Перечислите переменные в данном осциллографе.

Директива %breakpoint

Как альтернатива команде 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 очищает вторую точку останова.

Похожие темы