gdb添加了新的目标,如ROCgdb



如何向GDB添加目标,完成对新CPU的支持。我看了一眼GDB内部。我只是介绍了添加xxx_tdep.c文件,但没有详细说明xxx_tdep-c需要描述什么信息。我提到了RAM架构的ROCgdb,但我也不理解。

我不知道有一个文档可以阅读,其中包含添加新目标的完整步骤。

我认为,最好的策略是找到一个最近添加的目标,并查看添加该目标的提交,我建议RISC-V目标是一个很好的例子。

我会从git log -- gdb/riscv*开始,然后从列表的底部开始向上工作。

你发现的第一个承诺应该是这个。

不过,上面没有向您展示的一件事是,在添加GDB支持之前,您需要在bfd库(binutils-GDB/bfd目录(中为您的目标提供支持,这就是GDB为ARCH打开和处理文件的方式。此外,如果您希望GDB能够反汇编ARCH的指令,则至少需要向操作码库(binutils-GDB/opcodes目录(添加反汇编程序支持。一旦你有了bfd支持和操作码支持,像readelf、objdump和objcopy这样的东西就会工作,或者只需要最少的额外努力就可以工作。在这一点上,您已经准备好开始GDB的工作了。

ARCH步骤。[ch]文件处理裸机目标的东西,所以每个体系结构都需要一个这样的文件。然后,如果你想添加对Linux的支持(例如(,你需要ARCH Linux tdep。[ch]文件。这是通用的Linux支持,因此本地和远程Linux目标都使用它。为了真正支持在Linux上为特定目标本地运行GDB,您将添加ARCH Linux nat。[ch]文件。

最新更新