【问题标题】:is it possible to use riscv-gdb under ddd?可以在ddd下使用riscv-gdb吗?
【发布时间】:2019-03-17 08:27:47
【问题描述】:

到目前为止,我已经在命令行中提供了 riscv-gcc/riscv-gdb,以及用于 gui 的标准 ddd。

当我尝试遵循 ddd 的手册并使用 --debugger 选项时:

ddd --debugger riscv32-unknown-elf-gdb

ddd 可以显示窗口,但在左下角显示“opening session 'blablabla'”。

而且似乎 ddd 没有响应。

所以我想问一下,

riscv-dbg 可以使用 ddd 吗?

如果是,那么如何?

那里有任何成功的解决方案吗?

谢谢。 /帕特里克

【问题讨论】:

    标签: gdb riscv


    【解决方案1】:

    我会说它应该可以工作,但这可能不适用于您的操作系统/DDD 的特定组合 - 它对我使用 ubuntu 18.04.02 x86_64、ddd 3.3.12 和 riscv64 工具链/GDB 有效 - 因为DDD 是一个 GUI 前端,定位 riscv32 或 riscv64 应该无关紧要。

    lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 18.04.2 LTS
    Release:        18.04
    
    sudo apt-get install ddd
    ddd --version
    GNU DDD 3.3.12 (x86_64-pc-linux-gnu)                                                                                                                                                                                                          
    Copyright (C) 1995-1999 Technische Universit�t Braunschweig, Germany.                                                                                                                                                                         
    Copyright (C) 1999-2001 Universit�t Passau, Germany.                                                                                                                                                                                          
    Copyright (C) 2001 Universit�t des Saarlandes, Germany.                                                                                                                                                                                       
    Copyright (C) 2001-2009 Free Software Foundation, Inc.
    

    我使用了this question的答案中提供的示例代码和qemu。

    开始 ddd - 假设 riscv64-unknown-elf-gdb 在您的路径中:

    ddd --debugger riscv64-unknown-elf-gdb
    

    打开可执行文件(在我的例子中是 add.elf):文件/打开程序

    在包含(gdb) 提示符的 ddd 窗口中连接到目标: target remote localhost:1234

    我希望这将有助于确定您的问题可能是什么。

    【讨论】:

    • 非常感谢您的 cmets!我正在使用带有最新 DDD 的 Ubuntu 16(默认安装了 apt-get,我猜它是最新的)。好的,我会尝试解决这个问题。我看到你评论了很多与 RV 相关的问题。这对我们很有帮助。谢谢你。如果有任何问题,我会再次回来。
    • 顺便说一句,rv-dbg 是一个特定版本,因为我们只在硬件中实现了 rv32im,所以我们使用 github/riscv-tool-chains,并构建所有仅支持 rv32im 的子模块。但是所有其他选项都没有被黑客入侵。在这种情况下,也许 DDD 版本很重要,让我检查一下......
    • BTWx2,我们在硬件中添加了一些自定义操作码,并将它们添加到 RV-GCC(固有 asm)中,我不确定这是否也会自动更改 rv-dbg。由于新添加的操作码适用于新的寄存器文件,如果 rv-dbg 也受到影响,那么这些操作码在 rv-dbg 中的行为应该是不正确的(我们没有专门为 rv-dbg 更新任何内容)。在这种情况下,这也是一个问题。
    • @Patrick 您可以使用 Ununtu 16.04 上可用的 x86_64 GDB 测试您的 DDD:这可能会告诉您它是否正常工作。
    • @Patrick DDD 的最新版本是 3.3.12 - 只需在您的系统上运行 ddd --version。
    猜你喜欢
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多