GDB如何确定ARM体系结构

时间:2017-04-12 14:54:50

标签: arm gdb gdbserver

我正在使用带有Texas Instruments Hercules(Cortex-R4F)处理器的gdb(arm-none-eabi)。我正在使用Texas Instrument的XDS代理作为远程GDB服务器

运行后

target remote ip:port 

在GDB中,GDB将与XDS GDB服务器连接。然后我可以打印寄存器

info all-registers

它显示了CPU寄存器,还有f7和fpa寄存器,这些寄存器让我得出结论,CPU有一个浮点协处理器(FPA)。然而情况并非如此。处理器有vfpv3。所以GDB使用错误的寄存器定义会导致问题。

我试图通过设置

找到XDS GDB服务器发送的数据包中的信息
set debug remote 1

但找不到任何信息。 GDB如何确定要使用的寄存器定义?

更新: 我找到了set architecture命令:

set architecture

>Requires an argument. Valid arguments are arm, armv2, armv2a, armv3, armv3m, armv4, armv4t, armv5, armv5t, armv5te, xscale, ep9312, iwmmxt, iwmmxt2, arm_any, auto.

Cortex-R4f是带有vfpv3的armv7。我该怎么设置它?

1 个答案:

答案 0 :(得分:2)

TI的XDS代理充当GDBServer。

但是它没有响应qXfer这样的数据包:features:read ...来获取目标信息

最后我手动应用了:

set tdesc filename /gdb/binutils-gdb/gdb/features/arm/arm-with-vfpv3.xml

这为Corter-R4f设置了正确的功能,并允许我设置断点,调用函数等。

唉,我们现在正在寻找其他问题。看起来TI的XDS GDB服务器代理不是很稳定。