Emacs GDB ReRun Поведение - PullRequest
3 голосов
/ 06 мая 2011

Я бы хотел, чтобы команда gdb в программе X вместо этого переключилась на существующий сеанс отладки X, если он уже существует, вместо сообщения об ошибке "Эта программа уже отлаживается" в gud-common-init.

Я считаю, что это важно, потому что поведение gdb гармонизирует с стандартным поведением большинства других взаимодействий Emacs, таких как find-file, switch-to-buffer и т. тем самым создавая меньше путаницы для пользователя.

Пока что я изменил строку, содержащую

(error "This program is already being debugged"))

вместо этого сделать

(message "This program is already being debugged")

, чтобы хотя бы предотвратить возникновение ошибки. Однако функция gdb выполняет некоторые дополнительные инициализации, которые не требуются, что вызывает некоторые ненужные задержки. Это элемент todo, или я пропустил функцию gud / gdb, которая это уже делает?

Большое спасибо заранее, Пер Нордлёв

1 Ответ

0 голосов
/ 20 июля 2012

Вы всегда можете переименовать буфер. Вот как я могу запустить несколько сеансов GDB на одном исполняемом файле. Это не автоматический, но эффективный обходной путь.

Например, если мой исполняемый файл называется pump, то при запуске gdb будет сгенерирован буфер с именем * gud-pump *, который представляет сеанс gdb. Из этого буфера сделать meta-x переименовать-буфер * gud-pump1 *

Затем снова вызовите gdb, и у вас будет два сеанса GUD, один * насос гуд * и * насос гуд1 *. Сессии являются отдельными и не должны мешать (хотя они могут взаимодействовать) друг с другом.

...