码迷,mamicode.com
首页 > 数据库 > 详细

qemu+gdb调试内核出现remote ‘g’ packet reply is too long

时间:2019-12-11 21:42:01      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:编译安装   电脑   rsa   图片   https   ==   i++   qemu   错误   

今天尝试用qemu+gdb的方式调试内核,但是当设置了断点,程序执行到断点时就报错:remote ‘g’ packet reply is too long,错误图片如下
技术图片
解决办法网上了,说是改一下gdb/remote.c的代码,开始一脸懵逼,都不知道改哪里,知道看到了这篇博客:https://blog.csdn.net/baidu_31504167/article/details/93853921。这篇文章讲到了如何避免这个问题
重新下载gdb源码版本可以自己选,应该都行,然后修改源码目录下 gdb/remote.c(在我电脑上是gdb-7.9.1/gdb/remote.c)的这几行代码

if (buf_len > 2 * rsa->sizeof_g_packet)
    error (_("Remote 'g' packet reply is too long: %s"), rs->buf);

改为:

if (buf_len > 2 * rsa->sizeof_g_packet) {
   rsa->sizeof_g_packet = buf_len ;
   for (i = 0; i < gdbarch_num_regs (gdbarch); i++) {
       if (rsa->regs->pnum == -1)
          continue;
       if (rsa->regs->offset >= rsa->sizeof_g_packet)
          rsa->regs->in_g_packet = 0;
       else
          rsa->regs->in_g_packet = 1;
   }
}

至于什么原因我暂时也不清楚,修改完成后编译安装即可,安装过程可见上面链接的文章。

qemu+gdb调试内核出现remote ‘g’ packet reply is too long

标签:编译安装   电脑   rsa   图片   https   ==   i++   qemu   错误   

原文地址:https://www.cnblogs.com/myguaiguai/p/12024661.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!