我希望程序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
答案 0 :(得分:0)
您始终可以重命名缓冲区。这就是我可以在同一个可执行文件上运行多个gdb会话的方法。它不是自动的,但它是一种有效的工作。
例如,如果我的可执行文件名为pump,那么在运行gdb时,将生成一个名为 * gud-pump * 的缓冲区,它代表gdb会话。从此缓冲区执行 meta-x 重命名缓冲区 * gud-pump1 *
然后再次调用gdb,您将有两个GUD会话,一个 * gud-pump * 和 * gud-pump1 * 。会议是分开的,不应该相互干扰(尽管它们可以相互作用)。