java - RISC-V QEMU 上的 GDB

标签 java gdb qemu riscv

我们正在将 OpenJDK 移植到 RISC-V。我们正处于解释器构建的阶段。我们需要调试它,使用 GDB。然而,我们还没有找到一个可以与 RISC-V QEMU 一起工作的 GDB。任何帮助将不胜感激。

最佳答案

这取决于你所说的“与 QEMU 一起工作的 GDB”是什么意思。这里有三个用例

  • 运行系统模式 QEMU,尝试调试机器模式或主管模式程序(例如 Linux 内核)。为此,您应该能够使用连接到 QEMU 内置 GDB stup 的上游 RISC-V GDB 端口像往常一样进行调试。
  • 运行用户模式 ​​QEMU,尝试调试用户模式程序。我以前从未这样做过,但我认为您仍然可以使用 QEMU 的内置 GDB stub 并连接上游 GDB。
  • 运行系统模式 QEMU,尝试调试用户模式程序(例如 OpenJDK)。在这种情况下,QEMU 实际上并没有考虑到等式中,因为您实际上只是在寻找标准的 Linux GDB 端口。在 native 调试方面,我们的 Linux 和 GDB 端口目前都存在问题,但您应该能够使用这两者的最新上游版本并至少完成一些工作。我们的上游 Linux 端口中的驱动程序存在很多问题,但如果您只是使用 QEMU 的虚拟机,那么您应该可以继续使用。

我不确定 StackOverflow 是否是提出这个问题的最佳场所,因为答案一旦被问到就会过时。

关于java - RISC-V QEMU 上的 GDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52689575/

相关文章:

sockets - qemu/kvm : cannot connect multiple machines to the same socket

qemu - 如何在Linux上编译qemu(仅适用于i386)

c - 在 QEMU 中调试早期内核启动代码

java - 为什么我无法使用父类型访问子对象方法

Java向上转换作用域解析问题

java - 应用程序如何知道它正在 Google AppEngine 上运行?

gdb - 使用 GDB 跳出当前函数

java - 向字段添加冗余的@JsonProperty值注释是否会提高反序列化性能?

c++ - 为什么我的 CPP 在程序结束后随机运行

c : gdb : Overwriting and freeing too much memory