Отладка C / C в Emacs 23.1

#debugging #emacs

#отладка #emacs

Вопрос:

Я использую gdb версии 7.0 для отладки из emacs. GDB при запуске из emacs ведет себя несколько иначе по сравнению с тем, который запускается из командной строки. Отличия заключаются в следующем :-

  1. запрос gdb при запуске из emacs не распознает файлы в текущем каталоге (из которого запускается сеанс gdb).) Это очень громоздко, так как при запуске приложения через gdb (используя run) вам приходится указывать полный абсолютный путь к файлу. Это не тот случай, когда вы запускаете приложение через gdb из командной строки.

  2. Клавиши со стрелками (которые выдают самые последние команды, введенные в приглашении gdb) не работают для gdb, запущенной из emacs. Вместо этого он перемещает прокрутку вверх и вниз в командной строке emacs gdb. Я делаю здесь что-то не так ..?

Спасибо и с уважением

Ответ №1:

  1. поскольку вы находитесь в буфере, перемещайтесь вверх и вниз по буферу. большинство буферов, подобных оболочке emacs, обращаются к истории команд с помощью «C-up» и «C-down».

Комментарии:

1. Привет, спасибо за команду. Кажется, он обращается к истории. Требуется ли что-либо сделать, чтобы увеличить длину сохраняемой истории? Он просто показывает длину истории: 1 и запускается как команда. Я использовал ‘n’ и ‘s’ в gdb, которые не показаны.

2. Что касается (1.) части вопроса, я выяснил, что нам нужно ‘cd’ по желаемому пути один раз из приглашения gdb, поскольку emacs перемещается в местоположение двоичного файла, запущенного в gdb.

3. @rob — я бы предположил, что история имеет приличную длину, хотя я не знаю, как изменить настройку. я не совсем понимаю, что вы имеете в виду, когда вы говорите «Это просто показывает длину истории: 1 и выполняется как команда».

4. ДА. вы правы. История имеет достаточно приличную длину. Я имел в виду, что история показывает только ‘run’ (команда gdb) как присутствующую и ничего больше.