在 用 kgdb 调试64位arm内核的时候,当一切准备停当,在aarch64-linux-gnu-gdb 下输入 target remote /dev/ttyUSB0 后,gdb报出Remote ‘g’ packet reply is too long 的错误。

(gdb) target remote /dev/ttyUSB0
Remote debugging using /dev/ttyUSB0
Remote 'g' packet reply is too long: b8b9a300c0ffffff01000000000000000000000000000000c0b9a300c0ffffff000000000000000008016f00c0ffffff825e9f00c0ffffff4b4744423a20456e746572696e67204bc07a753ac0ffffffffe0f50500000000800100000000000006000000000000006d5e9f00c0ffffff5f5e9f80c0ffffff1000000000000000e0911600c0ffffff0000000000000000000000000000000000009a00c0ffffff6700000000000000402d9a00c0ffffff0700000000000000000000000000000011000000000000008601000000000000040000000000000000406c00c0ffffff0040753ac0ffffff307d753ac0ffffff6c3a1100c0ffffff307d753ac0ffffffd4391100c0ffffff450100600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

在网上找了很久,最后还是翻墙用google找到了正确的答案。
先说一下原因,在4.4内核的kgdb代码中,cpsr 寄存器的长度是64bit的,而在我用的aarch64-linux-gnu-gdb 中, cpsr 寄存器的长度被定义成32bit了,这样两边就无法匹配。正规的解决办法应该是下载最新的gdb,重新编译。但是编译gdb很麻烦,所以在stackoverflow上有人给出了一个简单的办法:
下载gdb源代码,然后把其中的aarch64-core.xml aarch64-fpu.xml aarch64.xml 这3个文件复制到你的工作目录下面,确保 aarch64-core.xml 中的cpsr 寄存器的长度为64位(我下的gdb7.8,这个问题还没有修复)

<reg name="cpsr" bitsize="64"/>

然后 在gdb 中,在执行 target remote /dev/ttyUSB0 之前,输入如下命令,以更新寄存器定义

set tdesc filename aarch64.xml

这样做了以后,就可以在64位的ARM内核上使用kgdb了。

Remote 'g' packet reply is too long 错误相关推荐

  1. Qemu 调试内核 出错 Remote 'g' packet reply is too long:

    按照博客http://blog.csdn.net/sunnybeike/article/details/6648815Qemu 调试内核, qemu的启动方式如下, qemu-system-x86_6 ...

  2. G盘提示无法访问参数错误,里面的资料怎么寻回

    G盘打不开参数错误,是因为这个I盘的文件系统内部结构损坏导致的.要恢复里面的数据就必须要注意,这个盘不能格式化,否则数据会进一步损坏.具体的恢复方法看正文 工具/软件:AuroraDataRecove ...

  3. Got a packet bigger than‘max_allowed_packet’bytes错误的解决方法

    MySQL导入数据报Got a packet bigger than'max_allowed_packet'bytes错误的解决方法 在执行sql脚本的时候报了Got a packet bigger ...

  4. win10远程桌面连接计算机密码错误,访问win10的远程桌面(Remote Desktop)总是凭据或者用户密码错误...

    现在的操作系统越来越难用,总数各种问题,愁人: 远程可以连接,但是输入正确的用户密码后总提示凭据错误,改了多少次也不行 (Win10是被访问的一方,修改的也是被访问的机器) 命令:gpedit.msc ...

  5. 为什么计算机无法访问u盘,为什么我的U盘在自己电脑上打开一直显示 无法访问G: 。由于I/o设备错误,无法运行此项请求...

    硬盘I/O设备错误解决方法 电脑硬盘出现I/O错误的情况比较常见,硬盘有问题启动显示"Disk I/O error",中文译名为"硬盘输入输出错误".出现这样的 ...

  6. MySQL导入数据报Got a packet bigger than‘max_allowed_packet’bytes错误的解决方法

    通过终端进入mysql控制台 navicat进入控制台的入口在这里,中英文版本在同一个位置 输入如下命令,修改即可 注意,使用这种方法,重启服务器之后又恢复默认值了. 这里博主只是导数据的时候临时将其 ...

  7. Linux(Ubuntu)下嵌入式gdb调试环境

    系统原理课实验要做CMU的Bomblab实验,然而bombg文件在arm架构,因此要配置一个交叉编译/调试环境,曾测试在Ubuntu 15.04下直接安装arm-none-eabi-gdb,然而调试时 ...

  8. linux执行cd会使用系统调用,深入理解Linux系统调用

    一.实验环境配置 系统环境:Ubuntu16.04 实验说明:本人学号末两位70,对应__64x_sys_msgrcv系统调用 注:不能在上次实验的基础上做,要重新下载解压linux-5.4.34文件 ...

  9. 通过qemu调试centos7内核

    1.安装依赖 sed -e 's|^mirrorlist=|#mirrorlist=|g' \-e 's|^#baseurl=http://mirror.centos.org|baseurl=http ...

最新文章

  1. CG CTF WEB 密码重置2
  2. asp.net core 自定义异常处理中间件
  3. 一份 Hadoop 面试 【避坑指南】 拍了拍你!
  4. 求一个二维数组的最大子矩阵的和
  5. 基于Vue.js的表格分页组件
  6. Linux手动配置虚拟机网络的两种方式
  7. Jmeter中Websocket协议支持包的使用 (转)
  8. windows下杀死关不掉的进程
  9. 如何使用ModSim32模拟ModbusRTU数据?
  10. Excel键盘快捷键大全(二)
  11. SQL注入了解认识及注入方式
  12. Outlook2019版本的收发邮件设定
  13. 路由交换技术一二章总结
  14. mysql怎么看端口号_mysql端口号(怎么查看mysql的端口号)
  15. python处理xml文件_Python处理XML之DOM解析
  16. Mathematica:向量、矩阵之间的区分
  17. 【POJ No. 1256】 字谜 Anagram
  18. 销售高手的21堂课》 之 《富爸爸财务自由之路》12
  19. 往事、回忆、轮回…… 《美国往事》
  20. 如何删除pdf文档中的某一页?

热门文章

  1. 【目标跟踪】|STARK
  2. 做电商,怎么降低快递运输成本?
  3. 最近很火的ChatGPT和GPT4
  4. 你怎样理解需求分析师_我真正理解心理咨询是如何起效的,是从我成为来访者的那一刻开始...
  5. java微信小程序授权微信登录获取手机号
  6. vue+element在IE中遇到的问题
  7. 色彩搭配的原理与避讳
  8. 解读手机拍照的各个参数(延时摄影)
  9. 【题解】[NOIP2018 提高组] 填数游戏
  10. 两台电脑之间如何使用共享文件夹来实现共享文件