Emacs GDB ReRun Behaviour
I would like the command gdb
o开发者_运维技巧n program X
to instead switch to an existing debugging session of X
if it already exists instead of signalling an error "This program is already being debugged" in gud-common-init
.
I believe this is important as it makes the behaviour of gdb
harmonize with the standard behaviour of most other Emacs interactions such as, find-file
, switch-to-buffer
etc, thus creating less confusion to the user.
So far I have modified the line containing
(error "This program is already being debugged"))
to instead do
(message "This program is already being debugged")
to at least prevent the error from arising. However, the function gdb
does some extra initializations that should not be needed that causes some unnecessary delays. Is this a todo item or have I missed some gud/gdb-function that does this already?
Many thanks in advance, Per Nordlöw
You can always rename-buffer. This is how I can run multiple gdb sessions on the same executable. It is not automatic but it is an effective work around.
For example if my executable is called pump, then upon running gdb, a buffer named *gud-pump* will be generated which represents the gdb session. From this buffer do meta-x rename-buffer *gud-pump1*
Then invoke gdb again and you will have two GUD sessions, one *gud-pump* and *gud-pump1*. The sessions are separate and should not interfere (although they can interact) with each other.
精彩评论