vim и gdb
Долгое время мы не использовали отладчик при разработке приборов, отдавая предпочтение аналитическому методу — долгому «всматриванию» в код. Но при разработке нового прибора мы все-таки решили попробовать использовать ARM-USB-OCD, и нам понравилось! Прибор прошивается за 5 секунд, можно посмотреть все действия по шагам. Теперь не нужно гадать, в каком треде прибор вываливается в сегфолт.
Но чтобы удовольствие от отладки было полным, мы решили прикрутить gdb к vim’у. В этом нам помог проект Clewn.
Последовательность действий такова:
- Подключаем прибор к компьютеру через ARM-USB-OCD и запускаем утилиту openocd на этом компьютере.
- Запускаем gdb и vim:
clewn -gc arm-elf-gdb -ga <путь-к-elf-файлу>
Появляется GDB-shell и открывается gvim. - Присоединяемся к openocd:
(gdb) target remote :3333
- Прошиваем прибор нужной прошивкой:
(gdb) load <путь-к-elf-файлу>
Все готово для отладки. Теперь можно открывать в gvim исходники, ставить breakpoint’ы, смотреть значения переменных и наблюдать за текущем местом выполнения. Список горячих клавиш описан в документации Clewn и, естественно, может модифицироваться.
а принципиальное отличие от просто gdb в чём? или от ddd?
ну вот, теперь читатели будут думать, что мы никогда on-chip отладчиком при разработке не пользовались ;)
ЭТО НЕПРАВДА! мы пользовались! и пользуемся. и будем.
в gdb неудобно код смотреть, показывает построчно. все равно приходится сверяться с исходниками, открытыми в текстовом редакторе. а в ddd, мягко говоря, не очень удобный интерфейс. например, чтобы поставить breakpoint приходится долго целиться мышкой, ну и никакой подсветки синтаксиса нет.
«Долгое время мы не использовали отладчик при разработке приборов» — звучит настораживающе. :)
так мы обычно напрямую подключаемся. прямо через разъём в голове. в этом случае отладчик действительно не нужен.
;)