|
@@ -201,6 +201,9 @@ void gdbstub_msg_write(const char *s, int len)
|
|
int wcount;
|
|
int wcount;
|
|
int i;
|
|
int i;
|
|
|
|
|
|
|
|
+ if (len == 0)
|
|
|
|
+ len = strlen(s);
|
|
|
|
+
|
|
/* 'O'utput */
|
|
/* 'O'utput */
|
|
gdbmsgbuf[0] = 'O';
|
|
gdbmsgbuf[0] = 'O';
|
|
|
|
|
|
@@ -685,6 +688,25 @@ static void gdb_cmd_query(struct kgdb_state *ks)
|
|
kgdb_mem2hex(tmpstr, remcom_out_buffer, strlen(tmpstr));
|
|
kgdb_mem2hex(tmpstr, remcom_out_buffer, strlen(tmpstr));
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
+#ifdef CONFIG_KGDB_KDB
|
|
|
|
+ case 'R':
|
|
|
|
+ if (strncmp(remcom_in_buffer, "qRcmd,", 6) == 0) {
|
|
|
|
+ int len = strlen(remcom_in_buffer + 6);
|
|
|
|
+
|
|
|
|
+ if ((len % 2) != 0) {
|
|
|
|
+ strcpy(remcom_out_buffer, "E01");
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ kgdb_hex2mem(remcom_in_buffer + 6,
|
|
|
|
+ remcom_out_buffer, len);
|
|
|
|
+ len = len / 2;
|
|
|
|
+ remcom_out_buffer[len++] = 0;
|
|
|
|
+
|
|
|
|
+ kdb_parse(remcom_out_buffer);
|
|
|
|
+ strcpy(remcom_out_buffer, "OK");
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+#endif
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|