Статьи

Сценарии: оболочка отладчика, начало работы…

(Это первая в серии статей о сценариях в Eclipse и CodeWarrior. Оставьте комментарий — дайте мне знать, что вы думаете!)

Написание кода должно быть забавным, а отладка — просто необходимостью, потому что я редко делаю это правильно с первого раза. Eclipse с его графическим интерфейсом — отличная вещь, как и интерфейс командной строки. К счастью, инженеры CodeWarrior Eclipse добавили такой инструмент для отладчика CodeWarrior: оболочку отладчика в качестве отладчика командной строки с использованием языка сценариев TCL . Это дает мне мощный способ справиться со встроенной целевой платой: от базового доступа к памяти до пошагового и контролируемого выполнения до программирования флэш-памяти.

Оболочка отладчика доступна в меню « Окно»> «Показать представление» :

Показать представление: оболочка отладчика

Показать представление: оболочка отладчика

Хорошая команда для использования это помощь . Здесь перечислены встроенные команды:

Команда помощи

Команда помощи

Он также имеет функцию автозаполнения: начните вводить команду, а затем нажмите клавишу TAB : это покажет все соответствующие команды с синтаксисом:

Быстрая Помощь

Быстрая Помощь

Большинство команд имеют также короткую версию: поэтому я могу набрать help или просто h . Это экономит мне время на написание. Кроме того, я могу использовать клавиши курсора, чтобы перемещаться по истории команд.

Если я по умолчанию запускаю конфигурацию, я просто использую команду отладки :

%>debug
Launching {1}: 0% complete 
: 0% complete 
: 7% complete 
Launching application: 7% complete 
Creating debug session: 7% complete 
Launching executable: 7% complete 
Preparing executable: 7% complete 
Loading symbolic information: 7% complete 
Finished loading symbolic information: 7% complete 
Preparing executable: 7% complete 
thread break: Stopped, 0x0, 0x0, cpu68K, test_UIWidgets.elf (state, tid, pid, cpu, target) 
thread set: Stopped, 0x0, 0x0, cpu68K, test_UIWidgets.elf (state, tid, pid, cpu, target) 
Downloading 14468 bytes...: 7% complete 
Download using 3rd party component...: 7% complete 
Download using 3rd party component...: 100% complete 
thread break: Stopped, 0x0, 0x0, cpu68K, test_UIWidgets.elf (state, tid, pid, cpu, target)

Но как узнать, какая конфигурация запуска по умолчанию? Есть команда запуска, которая сообщает это:

%>launch
 *>0 - test_UIWidgets_MCF51JM128_Internal_Flash_PnE U-MultiLink [CodeWarrior Download] 
   1 - TWR-LCD JM128 Bootloader PnE [CodeWarrior Download] 
   2 - Attach FSLBOT MCF52259_Internal_Flash [CodeWarrior Attach] 
   3 - Tower MCF52259 HotSync [CodeWarrior Attach]

Позиция со звездочкой (*) обозначает мою текущую конфигурацию запуска по умолчанию. Зная список запусков, я могу использовать любой индекс для отладки проекта:

%>debug 1

Или я могу использовать имя:

%>debug "TWR-LCD JM128 Bootloader PnE"

Завершить или убить сеанс отладки просто с помощью команды kill :

%>kill
thread exit: Stopped, 0x0, 0x0, cpu68K, TWR-LCDBootloader.elf (state, tid, pid, cpu, target)

Шагать легко: пошаговая инструкция или пошаговая инструкция по сборке:

%>step asm
%>stepi

Также есть пошаговая инструкция для перехода , перехода или выхода из функции:

%>step into
%>step over
%>step out

Чтобы установить точку останова, я использую команду bp . Использование bp без аргументов также перечислит мои контрольные точки.

%>bp main
  id  instance       address   type  enabled?  process  description 
  #5        #1  m:0x00002f86  -auto  ENABLED        $0  ProcessorExpert.c, line 53, main [TWR-LCDBootloader.elf]

Чтобы возобновить приложение, я использую команду go :

%>go

Если он не достигает точки останова, я использую стоп, чтобы остановить цель:

%>stop

Чтобы проверить мои переменные, я использую команду var :

%>var fileStatus
$00         
%>var BL_flashErased
$01

И чтобы проверить память, я использую команду mem :

%>mem 0x00800874 16
    800874  $0000177A $00002F84 $00002F98 $00002C8A   z... ./.. ./.. .,..  
    800884  $00000000 $00002C9C $00000000 $65000C03   .... .,.. .... ...e  
    800894  $4A004D00 $31003200 $3800001E $45FF0000   .M.J .2.1 ...8 ...E  
    8008a4  $0200EB3C $904D5344 $4F53352E $30000220   <... DSM. .5SO  ..0

ОК, этого пока достаточно. Это позволяет мне делать все основные отладки.

В следующий раз я собираюсь изучить, как я могу написать сценарий отладочной сессии. Я хочу автоматизировать вещи. Цель состоит в том, чтобы использовать скрипты для модульных тестов с использованием Debugger Shell.

Happy Shell Debugging :-)