首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用gdb转储ARM协处理器寄存器?

如何使用gdb转储ARM协处理器寄存器?
EN

Stack Overflow用户
提问于 2011-12-24 12:59:15
回答 1查看 3.7K关注 0票数 4

有没有办法从gdb中转储ARM的协处理器寄存器(特别是CP15 sctlr)?我使用代码的工具链-sourcery (arm-none- linux -gnueabi-)和调试运行在QEMU上的linux。

一种方法是在mcr/mrc指令之前/之后转储已使用的探地雷达。还有别的办法吗?

EN

回答 1

Stack Overflow用户

发布于 2012-01-01 18:10:48

据我所知,GDB/ARM无法显示这些信息.但是调试qemu可能会对您有所帮助(假设您可以使用其调试信息编译/调试qemu ):

  1. 将GDB (i686确定,但不是ARM)附加到qemu进程中
  2. 看看这个文件:qemu/target-arm/cpu.h
  3. 检查像env->cp15gdbserver_state->g_cpu->cp15这样的东西*: 结构{ uint32_t c0_cachetype;uint32_t c0_ccsid16;/*缓存大小。*/ uint32_t c0_clid;/*缓存级别。*/ uint32_t c0_cssel;/*缓存大小选择。*/ uint32_t c0_c18;/*特性寄存器。*/ uint32_t c0_c28;/*指令集寄存器。*/ uint32_t c1_sys;/*系统控制寄存器。*/ uint32_t c1_coproc;/*协处理器访问寄存器。*/ uint32_t c1_xscaleauxcr;/* XScale辅助控制寄存器。*/ uint32_t c2_base0;/* MMU翻译表基0。*/ uint32_t c2_base1;/* MMU翻译表基1. */ uint32_t c2_control;/* MMU翻译表基控制。*/ uint32_t c2_mask;/* MMU翻译表基选择掩码。*/ uint32_t c2_base_mask;/* MMU转换表基0掩码。*/ uint32_t c2_data;/* MPU数据可计算位。*/ uint32_t c2_insn;/* MPU指令可计算位。*/ uint32_t c3;/* MMU域访问控制寄存器MPU写缓冲区控制。*/ uint32_t c5_insn;/*故障状态寄存器。*/ uint32_t c5_data;uint32_t c6_region8;/* MPU基/大小寄存器。*/ uint32_t c6_insn;/*故障地址寄存器。*/ uint32_t c6_data;uint32_t c9_insn;/*缓存锁定寄存器。*/ uint32_t c9_data;uint32_t c13_fcse;/* FCSE PID。*/ uint32_t c13_context;/*上下文ID. */ uint32_t c13_tls1;/*用户RW线程寄存器。*/ uint32_t c13_tls2;/*用户RO线程寄存器。*/ uint32_t c13_tls3;/*特权线程寄存器。*/ uint32_t c15_cpar;/* XScale协处理器访问寄存器*/ uint32_t c15_ticonfig;/* TI925T配置字节。*/ uint32_t c15_i_max;/*最大D-缓存脏行索引。*/ uint32_t c15_i_min;/*最小D-缓存脏行索引。*/ uint32_t c15_threadid;/* TI调试器线程-ID。*/ } cp15;

*我不确定确切的位置,只是一些基于qemu/gdbmet.c的猜测,但我无法实际测试它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8624672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档