我如何在 xemacs 中 运行 gdb 交叉编译代码?

How can I run gdb in xemacs for cross-compiled code?

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

当我使用 <kbd>M-x,</kbd> gdb 我得到提示:

Run gdb on file:

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

Run gdb like this:

但我不知道如何获取。

接下来,一旦我学会了如何以这种方式做到这一点,我怎样才能将它作为一个单行代码来完成,我可以从 bash 运行,包括 gdb-foo 和附加选项? (我知道 bash 脚本;我只需要 xemacs 的咒语。)

想法是更改 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 源。您可以从那里搜索 "executable"(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)

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

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

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"然后"Apply"或"Apply and Save"。