debugging - Emacs GDB 重新运行行为

标签 debugging emacs gdb restart gud

我希望程序 X 上的命令 gdb 切换到 X 的现有调试 session (如果它已经存在)而不是发出信号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 函数?

提前非常感谢, 佩尔·诺德洛夫

最佳答案

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

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

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

关于debugging - Emacs GDB 重新运行行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5908874/

相关文章:

Javascript 正则表达式积极前瞻

visual-studio-2010 - VS2010 : "No matching binary found" when trying to load symbols for crashdump

javascript - emacs paredit - 如何删除引号

c - 如何轻松打包分析核心转储所需的库(即 packcore)

c - 在没有断点的情况下暂停 gdb

c - "= preserve do"在gdb中是什么意思

c - 在 C、Linux 中转储调试步骤

javascript - AJAX URL 追加与存储的 jQuery .data() 冲突

macos - Emacs 24 : Unable to find theme file for `solarized-dark.

emacs - 在 emacs 的 eshell 中调用 su