I've just committed the following patch: * lib/gdbserv-state.c (do_status_packet, gdbserv_data_packet): Fix memset() calls - the arguments were in the wrong order. (gdbserv_data_packet): Check return value from get_reg() call. Index: lib/gdbserv-state.c =================================================================== RCS file: /cvs/src/src/rda/lib/gdbserv-state.c,v retrieving revision 1.1 diff -u -p -r1.1 gdbserv-state.c --- lib/gdbserv-state.c 28 Aug 2002 01:22:28 -0000 1.1 +++ lib/gdbserv-state.c 16 Jan 2003 17:23:30 -0000 @@ -237,7 +237,7 @@ do_status_packet (struct gdbserv *gdbser if (sizeof_reg > 0) gdbserv->target->get_reg (gdbserv, reg_nr, ®); else - memset (®, sizeof (reg), 0); + memset (®, 0, sizeof (reg)); gdbserv->target->output_reg (gdbserv, ®, len); gdbserv_output_char (gdbserv, ';'); } @@ -747,9 +747,14 @@ gdbserv_data_packet (struct gdbserv *gdb long sizeof_reg = gdbserv->target->sizeof_reg (gdbserv, reg_nr); long len = (sizeof_reg < 0 ? -sizeof_reg : sizeof_reg); if (sizeof_reg > 0) - gdbserv->target->get_reg (gdbserv, reg_nr, ®); + { + int status; + status = gdbserv->target->get_reg (gdbserv, reg_nr, ®); + if (status < 0) + memset (®, 0, sizeof (reg)); + } else - memset (®, sizeof (reg), 0); + memset (®, 0, sizeof (reg)); gdbserv->target->output_reg (gdbserv, ®, len); } }