Emacs GDB ReRun Behaviour



我希望程序X上的命令gdb切换到X的现有调试会话(如果它已经存在),而不是在gud-common-init中发出错误"该程序已经在调试"的信号。

我认为这很重要,因为它使gdb的行为与大多数其他Emacs交互(如find-fileswitch-to-buffer等)的标准行为保持一致,从而减少对用户的混淆

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

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

改为做

(message "This program is already being debugged")

至少防止出现错误。但是,函数 gdb 会执行一些不需要的额外初始化,从而导致一些不必要的延迟。这是一个待办事项还是我已经错过了一些已经这样做的 gud/gdb 函数?

提前非常感谢,Per Nordlöw

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

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

然后再次调用 gdb,您将有两个 GUD 会话,一个 *gud-pump* 和 *gud-pump1*。这些会话是独立的,不应相互干扰(尽管它们可以交互)。

相关内容

  • 没有找到相关文章

最新更新