在emacs下使用gdb时的缓冲控制

时间:2013-07-15 12:44:29

标签: emacs gdb frames

我在emacs下使用gdb。在调试会话期间,当emacs / gdb跳转到源代码时,我通常打开另一个帧(C-x 5 2)并将其拉到我的第二个监视器上。 当需要打开一个新的源代码文件时(例如当程序进入另一个源文件中定义的函数,遍历堆栈等等)时,问题出现了.emacs倾向于自动打开新的相应源代码窗口,但不幸的是在gdb框架中。

我想在我打开的新框架中拉出新的源代码并完全保持gdb框架不变。我的问题是:

如何设置emacs以打开任何新文件,使文件显示在新框架中?

我希望我有意义。

1 个答案:

答案 0 :(得分:0)

不是一个简单的答案,但display-buffer-alist中的相应条目可以告诉display-buffer始终使用您想要的帧作为新缓冲区的目标。

在24.1中,文档是:

  

display-buffer-alist是`window.el'中定义的变量。它的价值   是零

     

如果用作文件局部变量,则此变量可能存在风险。

     

文档:“display-buffer”的条件操作的列表。这个   是一个元素列表(CONDITION.ACTION),其中:

     

CONDITION是正则表达式匹配缓冲区名称或函数   它有两个参数 - 缓冲区名称和ACTION参数   `display-buffer' - 并返回一个布尔值。

     

ACTION是一个利弊细胞(FUNCTION.ALIST),其中FUNCTION是一个   功能或功能列表。每个这样的功能应该接受   两个参数:要显示的缓冲区和与其相同形式的列表   一个列表。有关详细信息,请参阅`display-buffer'。

     

`display-buffer'扫描此列表,直到找到匹配项   正则表达式或条件指定的函数返回   非空。在任何这些情况下,它都会将相关操作添加到   它将尝试的行动清单。

     

您可以自定义此变量。

     

引入了此变量,或者更改了其默认值   Emacs的第24.1版。