如何在GDB中获取AArch64架构的tpidr_el0系统寄存器值
在GDB中获取AArch64架构的tpidr_el0寄存器值
针对你在AArch64架构下无法通过info registers或info registers all找到tpidr_el0寄存器的问题,有以下几种直接的解决方法:
- 直接打印寄存器值:执行命令
print $tpidr_el0,GDB支持直接通过寄存器名访问该系统寄存器,输出结果就是线程控制块(TCB)的地址。 - 查看系统寄存器组:如果上述命令未生效,尝试执行
info registers system,这个命令会列出所有系统级寄存器,tpidr_el0会包含在其中。
调试TLS变量的额外技巧
拿到tpidr_el0的值后,若已知目标TLS变量的偏移量,可以通过内存访问命令直接查看变量内容,比如:
print *(int *)($tpidr_el0 + 0x10)
(注:0x10为示例偏移量,需替换为实际变量的TLS偏移)
内容的提问来源于stack exchange,提问作者li junlong
相关产品推荐
相关产品推荐

