Как вы отлаживаете исходный код c / c ++ в linux, используя emacs? - PullRequest
3 голосов
/ 08 апреля 2010

Я использую emacs и autotools для написания и компиляции исходников c / c ++ в linux.
Я использую GDB через GUD в Emacs.
Для удобства я определил: F7: компилировать, F10: gud-next, F11: шаг gud, F5: gud-cont, F9: gud-tbreak, F8: gud-till, F4: gud-print. В основном меня интересует отладка исходного кода c / c ++ на linux из emacs, и я хотел бы получить максимум, что может дать gdb.
К сожалению, я использую только F4, который печатает переменную под курсором.

Итак, мой вопрос, как вы, ребята, отлаживаете исходный код?
Какие программы вы используете?
Какие сочетания клавиш (функциональность) вы используете чаще всего?
Что вам нужно сделать для вас отладчик?
Если вы делаете странные вещи, это не имеет значения. Я хотел бы знать все, чтобы немного повысить свою скорость здесь.
Заранее спасибо.
Михай

Ответы [ 5 ]

3 голосов
/ 08 апреля 2010

Я использую команды M-x gdb... для выбора нужных мне окон, затем я использую приглашение gdb.

2 голосов
/ 09 апреля 2010

Вы получите максимум от gdb, используя командную строку вместо привязок клавиш. Самые полезные команды, которые я использую:

  • bt - печатает обратную трассировку; полезно знать полный контекст того, где вы находитесь
  • s, n, cont - шаг, следующий, продолжить
  • run - очень полезно для начала в течение одного сеанса
  • watch - устанавливает точку наблюдения; полезно для ловли при изменении значения
  • call - вызвать функцию
  • display - печатать значение каждый раз, когда программа останавливается.
2 голосов
/ 08 апреля 2010

Я часто устанавливаю точки останова с C-x SPC на исходной строке, когда GDB находится в процессе,

1 голос
/ 08 апреля 2010

valgrind идеально подходит для обнаружения ошибок памяти. В большинстве случаев вам сообщают точное местоположение ошибки.

GDB тоже хорош, но не имеет отличного интерфейса, поэтому лучше использовать его с некоторыми графическими интерфейсами, например, DDD или Eclipse (да, я использую GDB с Eclipse, он имеет встроенную поддержку для это).

0 голосов
/ 08 апреля 2010

Я использую только отладчик, чтобы получить обратную трассировку при ошибке сегментации. Для всего остального я использую отладку printf.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...