1. 程式人生 > >GDB遠端除錯錯誤解決 使用GDB 7.2版本進行遠端除錯時出現:Remote ‘g’ packet reply is too long錯誤

GDB遠端除錯錯誤解決 使用GDB 7.2版本進行遠端除錯時出現:Remote ‘g’ packet reply is too long錯誤

GDB遠端除錯錯誤解決
使用GDB 7.2版本進行遠端除錯時出現:Remote ‘g’ packet reply is too long錯誤,需要修改gdb程式碼解決,辦法是:修改gdb/remote.c檔案,遮蔽process_g_packet函式中的下列兩行:
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[i].pnum == -1)
         continue;


         if (rsa->regs[i].offset >= rsa->sizeof_g_packet)
         rsa->regs[i].in_g_packet = 0;
         else
         rsa->regs[i].in_g_packet = 1;
      }
   }