启动aarch64-linux-gnu-gdb时出现AttributeError错误求助
问题原因与解决方法
原因分析
报错里的AttributeError: 'module' object has no attribute 'TYPE_CODE_RVALUE_REF'本质是两个兼容性问题叠加:
gdb.TYPE_CODE_RVALUE_REF是GDB 7.10版本才新增的属性,你当前使用的aarch64-linux-gnu-gdb版本低于7.10,不支持这个常量。- 你使用的Python 2.7已停止维护,GDB后续版本的Python脚本(比如报错里的
explore.py)逐渐不再适配Python2,进一步加剧了兼容性冲突。
解决方法
方法1:升级GDB版本
直接将aarch64-linux-gnu-gdb升级到7.10或更高版本,新版本会自带对TYPE_CODE_RVALUE_REF的支持,同时对Python3的兼容性更好:
- 用系统包管理器更新(以Debian/Ubuntu或RHEL/CentOS为例):
# Debian/Ubuntu系 sudo apt update && sudo apt install --upgrade gdb-multiarch # RHEL/CentOS系 sudo yum update aarch64-linux-gnu-gdb - 若包管理器无新版本,可从GDB源码编译,编译时指定Python3:
./configure --target=aarch64-linux-gnu --with-python=/usr/bin/python3 make && sudo make install
方法2:临时禁用有问题的脚本
如果暂时无法升级,直接处理报错的explore.py脚本:
- 重命名备份该文件:
sudo mv /usr/share/gdb/python/gdb/command/explore.py /usr/share/gdb/python/gdb/command/explore.py.bak - 或者启动GDB时跳过自动加载脚本:
aarch64-linux-gnu-gdb --nx
方法3:切换到Python3
Python2.7已停止维护,切换到Python3可解决多数兼容性问题:
- 先确认系统安装了Python3:
python3 -V - 设置环境变量让GDB使用Python3启动:
export GDB_PYTHON=/usr/bin/python3 aarch64-linux-gnu-gdb - 若要永久生效,可将上述
export命令添加到~/.bashrc或~/.zshrc文件中。
内容的提问来源于stack exchange,提问作者Carlos
相关产品推荐
相关产品推荐

