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 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 {