GDB如何确定ARM架构
How does GDB determine ARM architecture
我正在使用带有德州仪器 Hercules (Cortex-R4F) 处理器的 gdb (arm-none-eabi)。我正在使用德州仪器的 XDS 代理作为远程 GDB 服务器
在运行之后
target remote ip:port
在 GDB 中,GDB 将与 XDS GDBserver 连接。然后我可以打印寄存器
info all-registers
它向我展示了 CPU 寄存器,还有 f7 和 fpa 寄存器,这让我得出结论 CPU 有一个浮点协处理器 (FPA)。然而事实并非如此。处理器有 vfpv3。所以 GDB 使用了错误的寄存器定义,这导致了问题。
我试图通过设置
在XDS GDB服务器发送的数据包中找到信息
set debug remote 1
但找不到任何信息。 GDB 如何确定要使用的寄存器定义?
更新:
我找到了设置架构命令:
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。怎么设置?
TI 的 XDS 代理充当 GDBServer。
但它不会响应qXfer:features:read...等数据包来获取有关目标的信息
最后我手动申请了:
set tdesc filename /gdb/binutils-gdb/gdb/features/arm/arm-with-vfpv3.xml
这为 Corter-R4f 设置了正确的功能,并允许我设置断点、调用函数等。
唉,我们现在发现了其他问题。看来TI的XDS GDBserver代理不是很稳定
我正在使用带有德州仪器 Hercules (Cortex-R4F) 处理器的 gdb (arm-none-eabi)。我正在使用德州仪器的 XDS 代理作为远程 GDB 服务器
在运行之后
target remote ip:port
在 GDB 中,GDB 将与 XDS GDBserver 连接。然后我可以打印寄存器
info all-registers
它向我展示了 CPU 寄存器,还有 f7 和 fpa 寄存器,这让我得出结论 CPU 有一个浮点协处理器 (FPA)。然而事实并非如此。处理器有 vfpv3。所以 GDB 使用了错误的寄存器定义,这导致了问题。
我试图通过设置
在XDS GDB服务器发送的数据包中找到信息set debug remote 1
但找不到任何信息。 GDB 如何确定要使用的寄存器定义?
更新: 我找到了设置架构命令:
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。怎么设置?
TI 的 XDS 代理充当 GDBServer。
但它不会响应qXfer:features:read...等数据包来获取有关目标的信息
最后我手动申请了:
set tdesc filename /gdb/binutils-gdb/gdb/features/arm/arm-with-vfpv3.xml
这为 Corter-R4f 设置了正确的功能,并允许我设置断点、调用函数等。
唉,我们现在发现了其他问题。看来TI的XDS GDBserver代理不是很稳定