Командный режим отладчика
В дополнение к оконно-графическому режиму отладки, программа HT-IDE3000 также имеет дополнительный режим отладки, называемый командным режимом (Command Mode). В этом режиме пользователь имеет доступ как к функциям, доступным в оконно-графическом режиме, так и к дополнительным возможностям отладки. Эти возможности, в частности, включают в себя сохранение отладочной информации в лог-файл, для повторного автоматического запуска отладочных команд, а также для возможности выполнения предыдущей отладочной команды без её повторного набора.
Вход/выход из командного режима
Функции, поддерживаемые в командном режиме
В таблице, приведенной ниже, приведен полный список отладочных команд, поддерживаемых в командном режиме.
Команда |
Описание функции |
Синтаксис |
! |
Выполнение предыдущей команды |
!dd |
; |
Комментарий |
; |
BP |
Команды точек останова |
BP {-C|-D|-E|-L} [список|*]. _ список =11 12... |
BP |
Установить точку останова |
BP Область [,RW], Расположение [,Содержимое] [,Внеш. Сигнал] |
DВ |
Дамп программной памяти |
DB [банк.адрес [,диапазон] ] |
DR |
Дамп памяти данных |
DR [банк.адрес [,диапазон] ] |
FA |
Заполнить область строкой |
FA {банк.адрес|символ} список._ список =11 12... |
FB |
Заполнить область байтами |
FB {банк.адрес|символ} список._ список =11 12... |
GO |
Запуск программы в свободном режиме либо запуск до определённого адреса |
GO [адрес] |
JP |
Непосредственный переход на определённый адрес |
JP адрес |
H |
Помощь |
H |
HIS |
История команд |
HIS |
LF |
Загрузить и выполнить лог-файл |
LF [-V] [имя лог-файла] |
LP |
Загрузить проект |
LP имя проекта |
Q |
Выход |
Q |
R |
Сброс |
R |
POR |
Сброс по включению питания |
POR |
S |
Пошаговый режим (вход в процедуру / перешагивание / выход из процедуры) |
W {-S|-C} [Имя лог-файла] |
В синтаксисе команд отладки скобки { } означают, что параметры являются обязательными, в противном случае возникнет ошибка. Параметры разделяются символом |.
Рис. 5-8
Команды точек останова
Существует два типа команд точек останова, их синтаксис выглядит следующим образом:
- BP - Снять / Разрешить / Запретить / Вывести список
Синтаксис: BP [-C | -D | -E | -L ] [список | *]
Параметр -C означает очистку точки останова. При этом будет удалена выделенная точка останова либо удаляются все точки останова в списке. В списке может присутствовать от 1 до 20 точек, которые уже установлены. Можно выбирать одновременно несколько точек.
Например, три цифры 1 3 8, разделённые пробелом, означают, что будут удалены точки с порядковыми номерами 1, 3 и 8. Операция идентична функции Удалить (Delete) меню Отладка/Точки останова (Debug/Breakpoint). Символ звёздочки * означает, что все установленные точки останова будут удалены. Эта операция идентична функции Очистить всё (Clear All) меню Отладка/Точки останова (Debug/Breakpoint).
Параметр -D позволяет сделать все выделенные точки останова неактивными, при этом очки останова останутся в списке. Такая операция идентична функции Запретить (Disable) меню Отладка/Точки останова (Debug/Breakpoint). Символ звёздочки * имеет такое же значение, как описано выше.
Параметр -E позволяет сделать все выделенные точки останова активными. Такая операция идентична функции Разрешить (Enable) меню Отладка/Точки останова (Debug/Breakpoint). Символ звёздочки * имеет такое же значение, как описано выше.
Параметр -L позволяет отобразить в окне все установленные точки останова, в соответствии с содержимым окна Отладка/Точки останова (Debug/Breakpoint), где первая колонка отображает номер точки останова. Пользователь может впоследствии использовать этот номер совместно с командами BP -C, BP -D, BP -E.
Рис. 5-9
Примечания
- Для параметра BP-L список не требуется
- Программа HT-IDE3000 допускает до 3 активных точек останова одновременно.
Если параметры C, D, E или L не заданы, то команда Точки останова трактуется как:
- BP - Установить точку останова
Синтаксис: BP Область [,RW], Расположение [,Содержимое] [,Внеш. Сигнал]
Параметры в скобках не являются обязательными, однако при определённых условиях может потребоваться их указание.
Параметр Область может принимать значения С или D. Буква C означает расположение точки останова в программной памяти, а D означает расположение точки останова в области данных (ОЗУ)
Если в качестве параметра области выбрано D, следует также указать опцию "чтение/запись" [,RW]. Эта опция может принимать значения R, W или RW. Смысл этой опции заключается в том, что когда точка останова расположена в области данных, пользователь может выбрать условие активизации точки останова по чтению, записи, либо чтению и записи. Если в качестве параметра области выбрано C, что означает программную память, параметр RW необязателен.
Параметр Расположение определяет положение точки останова, его формат выглядит следующим образом:
[имя исходного файла!].номер строки или [имя исходного файла!].имя символа
Если < имя исходного файла > не определено, по умолчанию будет использован текущий открытый файл.
Если в качестве параметра области выбрано D, следует указать параметр Содержимое. Точка останова будет установлена по указанному адресу в памяти данных и инициирует останов при чтении или записи с указанным содержимым.
Информацию по использованию параметра Внеш. Сигнал см. в руководстве пользователя HT-IDE3000 User's Guide
Команда комментарий
Команды дампа
- Синтаксис:
- DB банк.адрес,диапазон
- DB диапазон
- DB
При помощи этой команды можно отобразить в окне содержимое заданной области программной памяти.
Область отображаемой памяти задаётся при помощи адреса, банка и диапазона. Данные отображаются в шестнадцатеричном виде. Если адрес задан, а банк - нет, по умолчанию будет использован текущий банк. Если не заданы ни адрес, ни банк, в качестве банка будет использован текущий, а в качестве адреса - текущее значение программного счётчика. Если не задан диапазон, то по умолчанию будет выведен диапазон в 16 слов. Значение диапазона не должно превышать объёма одного банка (2000h). Пример такого использования параметров команды - 1.0f00, где номер банка равен 1, а адрес равен 0f00h.
- Синтаксис:
- DR банк.адрес,диапазон
- DR адрес
При помощи этой команды можно отобразить в окне содержимое заданной области памяти данных.
Область отображаемой памяти задаётся при помощи адреса, банка и диапазона. Данные отображаются в шестнадцатеричном виде. Если диапазон не задан, то по умолчанию будет выведен диапазон в 16 слов. Значение диапазона не должно превышать объёма одного банка (100h), адрес банка также имеет шестнадцатеричный формат.
Команды заполнения
При помощи этих команд изменяется содержимое памяти данных
- Синтаксис: FB {банк.адрес | символ} ,список
Этой командой записываются байты, определённые в списке в память данных в определённый банк по определённому начальному адресу либо символу.
Может быть использована либо комбинация банк.адрес либо символ. В списке может быть более одного байта, при этом в качестве разделителя используется пробел. Все значения имеют шестнадцатеричный формат.
Обратите внимание, что список не должен перекрывать границу банка.
- Синтаксис: FA {банк.адрес | символ}, "строка"
Команда FA аналогична команде FB за исключением того, что данные передаются в формате ASCII
Пользователь может использовать следующие форматы символа:
.var
имя файла!.var
путь\имя файла!.var
Примечание: Если путь содержит пробелы, имя файла следует указывать в кавычках, в противном случае возникнет ошибка.
- Пример: FA "d:\tmp\test cmd\test1.asm!.count", "test1"
Команды запуска/перехода
- Синтаксис: GO [ адрес ]
Если задан адрес, программа будет выполняться до данного адреса. Если адрес не указан, программа будет выполняться до конца либо до достижения активной точки останова.
- Синтаксис: JP адрес
Осуществляет принудительный переход на указанный адрес. Указание адреса обязательно.
Команда помощь
Команды истории
- Синтаксис: HIS
По этой команде в окно выводится 20 последних выполненных команд, не включая собственно команду HIS. В первой колонке отображается порядковый номер.
- Синтаксис: !dd
Где dd это отображённый при помощи команды HIS порядковый номер команды. Эта команда осуществляет повторное выполнение заданной команды. Использование номера команды в последовательности совместно с символом "!" позволяет сэкономить время на набор команд и параметров. Если порядковый номер команды не указан, будет повторно выполнена последняя из выполненных команд.
Команды загрузки
Если имя файла не задано, по умолчанию будет использовано имя файла текущего проекта.
Параметр -V обозначает отображение командной строки и результата выполнения в окне.
Если команда LF выполняется без параметра -V, то результат выполнения будет записан в лог-файл с именем, идентичным имени исходного файла и расширением .res.
Для создания лог-файла используется команда W. Содержимое файла можно редактировать при помощи команд Файл (File) и Редактировать (Edit) программы HT-IDE3000.
Файл должен содержать корректные команды отладки, в противном случае возникнет ошибка, выполнение будет остановлено и программа вернётся в командную строку
Примечания
- Если путь содержит пробелы, имя файла следует указывать в кавычках, в противном случае возникнет ошибка.
- Лог-файл не должен содержать команд LF, W или Q.
Команда выхода
Примечания
- В режиме выполнения лог-файла эта команда игнорируется.
- После выхода из командного режима все файлы, открытые командами "LF" и "W -S" будут закрыты, выполнение команд - остановлено.
Команды сброса
Команды пошаговой отладки
Существует 3 типа команд пошаговой отладки; после их выполнения отображается состояние PC, STATUS и ACC
Если параметры не указаны, по умолчанию будет использовано "S -V"
Команда трассировки
Параметр -L означает, что будут отображены все записи, включая Номер последовательности, Программный счётчик, Машинный код, Дизассемблированную инструкцию, Данные, Внешний сигнал и Имя исходного файла с номером строки. Если параметр -L не задан, по умолчанию будут записаны только Номер последовательности, Программный счётчик, Машинный код, Дизассемблированная инструкция и Имя исходного файла с номером строки.
Параметр "длина" задаёт глубину отображаемой информации трассировщика. Отображаемая информация начинается с номера последовательности 0 и продолжается на заданную глубину. Этим параметром также можно задать глубину отображения буфера пост-трассиировки. Для этого следует предварительно задать Объём последующей информации. По умолчанию длина равна 5.
Параметры Режим трассировки, квалификаторы, объём последующей информации и т.д. устанавливаются в окне программы HT-IDE3000, в командном режиме установка этих параметров не поддерживается.
Команда записи
Если указанный лог-файл уже однажды был сохранён, система потребует подтверждения перед перезаписью файла и выполнением следующего шага. Добавлять к имени файла расширение не обязательно.
Если лог-файл не существует, то он будет создан с именем, идентичным имени проекта и расширением .CMD.
Примечания :
- Если путь содержит пробелы, имя файла следует указывать в кавычках, в противном случае возникнет ошибка.
- После выполнения команды "W -S" невозможно выполнение команд "LF" и "W -S".
Формат лог-файла
Лог-файл представляет собой текстовый файл, который можно редактировать любым текстовым редактором, включая встроенный редактор пакета HT-IDE3000. Этот редактор вызывается командой Редактировать (Edit) из основного меню. Каждая отладочная команда занимает одну строку лог-файла.
Команда "W-S имя лог-файла" очищает содержимое лог-файла, после чего в него записываются новые команды и их результаты.
Если файл создан из командной строки с помощью команды "W -S", то он будет содержать также значки командной строки. При использовании этого файла командами отладчика эти значки автоматически игнорируются. В том случае, если файл создаётся с помощью редактора, набирать значки командной строки не требуется.
Если лог-файл создан при помощи команды "W -S", то перед каждым из результатов выполнения команды будет автоматически вставлен символ ";" переводящий результат выполнения в комментарий. В этом случае, при последующей загрузке файла будут выполняться только команды, результаты выполнения будут игнорированы.
Сообщения об ошибках HT-COMMAND
Сообщение об ошибке |
Описание |
Invalid Command/Неверная команда |
Набранная команда не существует |
Can not find HT-IDE/Не могу найти HT-IDE |
Текущая среда не является средой HT-IDE3000 |
Syntax error/Ошибка синтаксиса |
Неверный синтаксис набранной команды |
No project for debug/Отсутствует проект для отладки |
Ни один проект не был открыт в среде HT-IDE3000 |
ROM bank out of range/Банк ПЗУ вышел за пределы |
Дамп программной памяти превысил допустимые размеры |
RAM bank out of range/Банк ОЗУ вышел за пределы |
Дамп памяти данных превысил допустимые размеры |
Can not run xxx command in emulation mode/Команда ххх не может быть выполнена в режиме эмуляции |
Команда ххх не может быть выполнена |
Can not run xxx command in load file mode/ Команда ххх не может быть выполнена в режиме загрузки файла |
Команда ххх не может быть выполнена |
Can not run xxx command in write file mode/ Команда ххх не может быть выполнена в режиме записи файла |
Команда ххх не может быть выполнена |
Unterminated string/Незавершённая строка |
Строковые параметры требуется помещать в закрытые скобки |
No Command in history buffer/Нет команд в буфере истории |
Буфер истории пуст |
Open xxx log file error/Ошибка открытия лог-файла ххх |
Ошибка при открытии лог-файла ххх |
Close xxx log file error/Ошибка закрытия лог-файла ххх |
Ошибка при закрытии лог-файла ххх |
Read xxx log file error/Ошибка чтения лог-файла ххх |
Ошибка при чтении лог-файла ххх |
Write xxx log file error/Ошибка записи лог-файла ххх |
Ошибка при записи лог-файла ххх |
Not in emulation status/Не в состоянии эмуляции |
Перед выполнением этой команды следует перейти в режим эмуляции |
Sources have been modified, please rebuild/Исходные файлы изменены, требуется повторное выполнение проекта |
Исходные файлы проекта были изменены, для вступления изменений в силу требуется повторное выполнение проекта |
Stop by user/Остановлено пользователем |
Выполнение остановлено пользователем |
Get PC failed/Сбой при чтении PC |
Произошла ошибка при чтении Программного счётчика PC |
Stack overflow/Переполнение стека |
Размер стека превысил допустимые переделы |
No debug info/Отсутствует отладочная информация |
Отладочная информация для установленных точек останова отсутствует |
Cannot find the symbol/Невозможно найти символ |
Невозможно найти указанный символ |
Cannot find the register/Невозможно найти регистр |
Невозможно найти указанный регистр |
|