Emacs GDB重新运行行为

时间:2011-05-06 08:38:22

标签: debugging emacs gdb restart gud

我希望程序gdb上的命令X转而使用X的现有调试会话,如果它已经存在而不是发出错误信号“这个程序是已经在gud-common-init中调试“

我认为这很重要,因为它使gdb 的行为与大多数其他Emacs互动的标准行为协调,例如{{1} },find-file等,从而为用户创建较少的混淆

到目前为止,我修改了包含

的行
switch-to-buffer

改为

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

至少可以防止错误的产生。但是,函数(message "This program is already being debugged") 会执行一些不需要的额外初始化,这会导致一些不必要的延迟。这是一个todo项目还是我错过了一些gud / gdb-function这样做呢?

非常感谢, PerNordlöw

1 个答案:

答案 0 :(得分:0)

您始终可以重命名缓冲区。这就是我可以在同一个可执行文件上运行多个gdb会话的方法。它不是自动的,但它是一种有效的工作。

例如,如果我的可执行文件名为pump,那么在运行gdb时,将生成一个名为 * gud-pump * 的缓冲区,它代表gdb会话。从此缓冲区执行 meta-x 重命名缓冲区 * gud-pump1 *

然后再次调用gdb,您将有两个GUD会话,一个 * gud-pump * * gud-pump1 * 。会议是分开的,不应该相互干扰(尽管它们可以相互作用)。