vim и gdb

Долгое время мы не использовали отладчик при разработке приборов, отдавая предпочтение аналитическому методу — долгому «всматриванию» в код. Но при разработке нового прибора мы все-таки решили попробовать использовать ARM-USB-OCD, и нам понравилось! Прибор прошивается за 5 секунд, можно посмотреть все действия по шагам. Теперь не нужно гадать, в каком треде прибор вываливается в сегфолт.

Но чтобы удовольствие от отладки было полным, мы решили прикрутить gdb к vim’у. В этом нам помог проект Clewn.

Последовательность действий такова:

  1. Подключаем прибор к компьютеру через ARM-USB-OCD и запускаем утилиту openocd на этом компьютере.
  2. Запускаем gdb и vim:
    clewn -gc arm-elf-gdb -ga <путь-к-elf-файлу>
    Появляется GDB-shell и открывается gvim.
  3. Присоединяемся к openocd:
    (gdb) target remote :3333
  4. Прошиваем прибор нужной прошивкой:
    (gdb) load <путь-к-elf-файлу>

Все готово для отладки. Теперь можно открывать в gvim исходники, ставить breakpoint’ы, смотреть значения переменных и наблюдать за текущем местом выполнения. Список горячих клавиш описан в документации Clewn и, естественно, может модифицироваться.

5 комментариев

  1. Антон Фельдман:

    а принципиальное отличие от просто gdb в чём? или от ddd?

  2. Антон Фельдман:

    ну вот, теперь читатели будут думать, что мы никогда on-chip отладчиком при разработке не пользовались ;)

    ЭТО НЕПРАВДА! мы пользовались! и пользуемся. и будем.

  3. Евгений Аполлонский:

    в gdb неудобно код смотреть, показывает построчно. все равно приходится сверяться с исходниками, открытыми в текстовом редакторе. а в ddd, мягко говоря, не очень удобный интерфейс. например, чтобы поставить breakpoint приходится долго целиться мышкой, ну и никакой подсветки синтаксиса нет.

  4. Max:

    «Долгое время мы не использовали отладчик при разработке приборов» — звучит настораживающе. :)

    • Антон Фельдман:

      так мы обычно напрямую подключаемся. прямо через разъём в голове. в этом случае отладчик действительно не нужен.
      ;)