【问题标题】:How can I run gdb in xemacs for cross-compiled code?如何在 xemacs 中运行 gdb 以获取交叉编译的代码?
【发布时间】:2018-02-07 19:20:25
【问题描述】:

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

【问题讨论】:

    标签: linux emacs gdb cross-platform xemacs


    【解决方案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,请运行自定义命令: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",然后“应用”或“应用并保存”。

    【讨论】:

    • 谢谢!但我得到`gdb' is an interactive autoloaded Lisp function -- autoloads from "gdb" 并点击gdb 什么也没做;双击它只是设置一个标记。我正在运行XEmacs 21.4 (patch 22) "Instant Classic" [Lucid] (x86_64-linux-gnu, Mule) of Mon Nov 4 2013 on toyol
    • 并直接跳转到“M-x customize”,然后在搜索字段中跳转到“gud-gdb-command-name”? (我的想法是描述我用来获得我提出的解决方案的所有步骤)
    • 但是,您只需要自定义“gud-gdb-command-name”变量(至少在我的 Emacs 版本 25.5 中,不确定我的建议是否仍然适用于您的版本)
    • 我一直忙于其他事情。我最初尝试了你的建议,但没有任何结果,但我需要回复细节。我相信这是一个版本差异问题,加上我对 emacs 的一般无知。
    • 我希望我没有把你引向错误的方向,但我认为这是正确的方式(gud-gdb-command-name 变量的自定义)。感谢您的反馈。
    猜你喜欢
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    • 2021-10-26
    相关资源
    最近更新 更多