【问题标题】:Emacs GDB ReRun BehaviourEmacs GDB 重新运行行为
【发布时间】:2023-10-01 02:47:01
【问题描述】:

如果程序X 上的命令gdb 已经存在而不是发出错误信号“该程序已经在调试” em> 在gud-common-init.

我相信这很重要,因为它使gdb 的行为协调 与大多数其他 Emacs 交互的 标准 行为,例如 find-file、@987654327 @ 等,从而给用户带来更少的混淆

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

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

改为做

(message "This program is already being debugged")

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

提前非常感谢, 每诺德洛夫

【问题讨论】:

  • 请考虑通过M-x report-emacs-bug提交增强请求。

标签: debugging emacs gdb restart gud


【解决方案1】:

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

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

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

【讨论】:

    最近更新 更多