summaryrefslogtreecommitdiff
path: root/gdb/gdbserver/remote-utils.c
diff options
context:
space:
mode:
authorJason Molenda <jsm@bugshack.cygnus.com>1999-11-02 04:44:47 +0000
committerJason Molenda <jsm@bugshack.cygnus.com>1999-11-02 04:44:47 +0000
commitca799f40e93972d04247a5bbc76b749a2d462824 (patch)
treed0142d7a9db3d791008037a060e4336032339c66 /gdb/gdbserver/remote-utils.c
parent1f80975aceb82ecd4fc9bf4e988e6d1b7c7bbca1 (diff)
downloadgdb-ca799f40e93972d04247a5bbc76b749a2d462824.tar.gz
import gdb-1999-11-01 snapshot
Diffstat (limited to 'gdb/gdbserver/remote-utils.c')
-rw-r--r--gdb/gdbserver/remote-utils.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/gdb/gdbserver/remote-utils.c b/gdb/gdbserver/remote-utils.c
index 4dab2abb8d5..cd078ccddc9 100644
--- a/gdb/gdbserver/remote-utils.c
+++ b/gdb/gdbserver/remote-utils.c
@@ -201,7 +201,7 @@ putpkt (buf)
{
int i;
unsigned char csum = 0;
- char buf2[2000];
+ char buf2[PBUFSIZ];
char buf3[1];
int cnt = strlen (buf);
char *p;
@@ -435,10 +435,13 @@ outreg (regno, buf)
int regno;
char *buf;
{
- extern char registers[];
int regsize = REGISTER_RAW_SIZE (regno);
- *buf++ = tohex (regno >> 4);
+ if ((regno >> 12) != 0)
+ *buf++ = tohex ((regno >> 12) & 0xf);
+ if ((regno >> 8) != 0)
+ *buf++ = tohex ((regno >> 8) & 0xf);
+ *buf++ = tohex ((regno >> 4) & 0xf);
*buf++ = tohex (regno & 0xf);
*buf++ = ':';
convert_int_to_ascii (&registers[REGISTER_BYTE (regno)], buf, regsize);
@@ -469,6 +472,18 @@ prepare_resume_reply (buf, status, signo)
if (status == 'T')
{
+#ifdef GDBSERVER_RESUME_REGS
+ static int gdbserver_resume_regs[] = GDBSERVER_RESUME_REGS ;
+ int i;
+ for (i = 0;
+ i < sizeof (gdbserver_resume_regs)
+ / sizeof (gdbserver_resume_regs[0]);
+ i++)
+ {
+ int regnum = gdbserver_resume_regs[i];
+ buf = outreg (regnum, buf);
+ }
+#else /* !defined(GDBSERVER_RESUME_REGS) */
buf = outreg (PC_REGNUM, buf);
buf = outreg (FP_REGNUM, buf);
buf = outreg (SP_REGNUM, buf);
@@ -478,6 +493,7 @@ prepare_resume_reply (buf, status, signo)
#ifdef O7_REGNUM
buf = outreg (O7_REGNUM, buf);
#endif
+#endif /* GDBSERVER_RESUME_REGS */
/* If the debugger hasn't used any thread features, don't burden it with
threads. If we didn't check this, GDB 4.13 and older would choke. */