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

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

    Выбор Start TLC debugger when generating code эквивалентен установке опции TLC -dc на панели Code Generation диалогового окна Параметры конфигурации.

  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 представлены команды отладчика 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

Отображение содержимого стека ввода-вывода.

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]

Перечислите переменные в данной возможности.

Директива о точках останова%

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

Похожие темы