1

我不使用 emacs,但我知道 xemacs 可以用作 gdb 的前端(以前使用过)。但是,我的代码是交叉编译的,所以我不能运行 gdb,我必须运行用于交叉编译代码的特定版本的 gdb(我们称之为 gdb-foo)。如何设置 xemacs 以运行备用 gdb?

当我使用时,M-x, gdb我得到提示:

Run gdb on file:

我记得看到过这样的事情:

Run gdb like this:

但我不知道如何得到它。

接下来,一旦我学会了如何做到这一点,我怎么能作为一个可以从 bash 运行的单线器来做到这一点,包括 gdb-foo 和附加选项?(我知道 bash 脚本;我只需要 xemacs 的咒语。)

4

1 回答 1

1

这个想法是改变 gdb 可执行文件。让我们看看如何使用 emacs 检索此类信息。

在emacs下,可以C-h f gdb打印gdb函数帮助:

gdb is an interactive autoloaded compiled Lisp function in
‘gdb-mi.el’.

It is bound to <menu-bar> <tools> <gdb>.... etc.

然后点击gdb-mi.el进入lisp源码。从那里您可以搜索“可执行文件”(C-s executable,然后C-s搜索下一次出现)。您会发现这个可自定义的变量:

(defcustom gud-gdb-command-name "gdb -i=mi"
  "Default command to execute an executable under the GDB debugger."
  :type 'string
  :group 'gdb)

就是这样!您拥有所需的所有信息。

现在要有效地更改gdbgdb-foo,请运行自定义命令:M-x customize. 然后在搜索字段中输入“gud-gdb-command-name”+回车。你应该得到类似的东西:

gud-gdb-command-name                              Search 

Operate on all settings in this buffer:
 Revert...   Apply   Apply and Save 

Hide Gud Gdb Command Name: gdb -i=mi      <---- MODIFY ME!
    State : STANDARD.
   Default command to execute an executable under the GDB debugger.
Groups: Gdb

您可以修改"gdb -i=mi""gdb-foo -i=mi"然后“应用”或“应用并保存”。

于 2018-02-08T05:06:49.170 回答