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

  2. Выберите отладчик Start TLC при генерации кода, чтобы вызвать отладчик 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

Замените переменную в под управлением программе.

break ["filename":]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

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

stop ["filename":]line|error|warning|trace|
function

Установите точку останова (то же самое как 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 очищает вторую точку останова.

Похожие темы