如何在xemacs中运行gdb以获得交叉编译的代码?

时间:2018-02-07 19:20:26

标签: linux emacs gdb cross-platform xemacs

我没有使用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的咒语。)

1 个答案:

答案 0 :(得分: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)

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

现在要有效地将gdb更改为gdb-foo,请运行customize命令: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",然后“应用”或“应用并保存”。