我没有使用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的咒语。)
答案 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"
,然后“应用”或“应用并保存”。