* i386-stub.c (handle_exception): Use 'T' response packet.
authorJ.T. Conklin <jtc@acorntoolworks.com>
Thu, 1 Mar 2001 22:45:42 +0000 (22:45 +0000)
committerJ.T. Conklin <jtc@acorntoolworks.com>
Thu, 1 Mar 2001 22:45:42 +0000 (22:45 +0000)
gdb/ChangeLog
gdb/i386-stub.c

index 3be660ee362db4e30085999422f42e3589f618d1..1a33dba9073c2c5994e6fa054f002a290e8a030d 100644 (file)
@@ -1,3 +1,7 @@
+2001-03-01  J.T. Conklin  <jtc@redback.com>
+
+       * i386-stub.c (handle_exception): Use 'T' response packet.
+
 2001-03-01  Michael Snyder  <msnyder@mvstp600e.cygnus.com>
 
        * m32r-tdep.c: Fix cut and paste error in comment.
index 7aa5da9369c1337fb30fa30b4c3bd87f16b4f2aa..1251567e9121d5ddb337a6f589a615165844f3cc 100644 (file)
@@ -758,10 +758,29 @@ handle_exception (int exceptionVector)
 
   /* reply to host that an exception has occurred */
   sigval = computeSignal (exceptionVector);
-  remcomOutBuffer[0] = 'S';
-  remcomOutBuffer[1] = hexchars[sigval >> 4];
-  remcomOutBuffer[2] = hexchars[sigval % 16];
-  remcomOutBuffer[3] = 0;
+
+  ptr = remcomOutBuffer;
+
+  *ptr++ = 'T';                        /* notify gdb with signo, PC, FP and SP */
+  *ptr++ = hexchars[sigval >> 4];
+  *ptr++ = hexchars[sigval & 0xf];
+
+  *ptr++ = hexchars[ESP]; 
+  *ptr++ = ':';
+  ptr = mem2hex((char *)&registers[ESP], ptr, 4, 0);   /* SP */
+  *ptr++ = ';';
+
+  *ptr++ = hexchars[EBP]; 
+  *ptr++ = ':';
+  ptr = mem2hex((char *)&registers[EBP], ptr, 4, 0);   /* FP */
+  *ptr++ = ';';
+
+  *ptr++ = hexchars[PC]; 
+  *ptr++ = ':';
+  ptr = mem2hex((char *)&registers[PC], ptr, 4, 0);    /* PC */
+  *ptr++ = ';';
+
+  *ptr = '\0'
 
   putpacket (remcomOutBuffer);