console handling

Eric Pouech eric.pouech at wanadoo.fr
Mon Jan 6 14:40:38 CST 2003


Dimitrie O. Paun wrote:
[info snipped]

thanks for the traces ;-)
ok, winedbg is too slow to respond, so gdb retries with the same packet, 
and when winedbg is ready, it's out of sync with gdb...
does the attached hack^H^H^H^Hpatch solve the issue ?

A+


-- 
Eric Pouech
-------------- next part --------------
Name:          wd_gdb
ChangeLog:     fixed protocol packet handling when winedbg is too slow to answer
License:       X11
GenDate:       2003/01/06 20:39:33 UTC
ModifiedFiles: programs/winedbg/gdbproxy.c
AddedFiles:    
===================================================================
RCS file: /home/cvs/cvsroot/wine/wine/programs/winedbg/gdbproxy.c,v
retrieving revision 1.3
diff -u -u -r1.3 gdbproxy.c
--- programs/winedbg/gdbproxy.c	16 Dec 2002 22:10:34 -0000	1.3
+++ programs/winedbg/gdbproxy.c	6 Jan 2003 20:35:03 -0000
@@ -20,6 +20,10 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+/* Protocol specification can be found here:
+ * http://sources.redhat.com/gdb/onlinedocs/gdb_32.html
+ */
+
 #include "config.h"
 
 #include <assert.h>
@@ -1788,6 +1792,7 @@
     unsigned char       in_cksum, loc_cksum;
     char*               ptr;
     enum packet_return  ret = packet_error;
+    int                 num = 0;
 
     while ((ret & packet_last_f) == 0)
     {
@@ -1814,6 +1819,7 @@
         loc_cksum = checksum(gdbctx->in_buf + 1, plen);
         if (loc_cksum == in_cksum)
         {
+        if (num == 0) {
             int                 i;
 
             ret = packet_error;
@@ -1857,6 +1863,11 @@
             /* if this fails, we'll have to use POLLOUT...
              */
             gdbctx->out_len = 0;
+            num++;
+        } else {
+            if (gdbctx->trace & GDBPXY_TRC_LOWLEVEL)
+                fprintf(stderr, "dropping packet, I was too slow to respond\n");
+        }
         }
         else
         {


More information about the wine-devel mailing list