From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fernando Nasser To: Mark Salter Cc: Fabrice_Gautier@sdesigns.com, gdb@sources.redhat.com, ecos-discuss@sourceware.cygnus.com Subject: Re: Ctrl-C interrupt problem. Date: Thu, 16 Nov 2000 05:48:00 -0000 Message-id: <3A13E574.5BF265BB@cygnus.com> References: <200011161325.eAGDP8P09301@deneb.localdomain> X-SW-Source: 2000-11/msg00185.html Nice catch Fabrice. Congratulations on your persistence. Fernando Mark Salter wrote: > > >>>>> Fabrice Gautier writes: > > > [eCos and RedBoot guys, I think this may concern you > > its about a ctrl-C problem which only happen when debugging via ethernet. > > full story in the gdb list archives ] > > > I Got it! > > Well, i hope.... > > > And it make sens why it only happens with TCP... > > > The problem is that when gdb send the continue packet to the target, it wait > > for the target to send the '+' Ack. During this time the SIGINT handler is > > not set. > > > My guess is that RedBoot intedn to send it BUT (tata) the ethernet driver > > just wait to have a full packet before really sending! So this happen when a > > O packet is sent. > > > So i guess the only thing needed in RedBoot is to add a "flush" somewhere. > > I'm not sure at what level, but i'll look at it tomorrow if nobody does it > > before. > > > Thanks > > > -- > > Fabrice Gautier > > fabrice_gautier@sdesigns.com > > Yes, it appears that redboot only flushes the output stream when > it sees the end of a packet. This causes the problem you see. > > Look at .../redboot/current/src/net/net_io.c:net_io_putc(). > > A quick workaround would be to also flush if a '+' is seen. This > has a downside as it may severely impact download speeds, but at > least it is functionally correct. YMMV. > > This needs to be fixed with a flush of the output stream prior > to continuing or stepping the target. Its not clear to me right > now how this can be done. > > --Mark -- Fernando Nasser Red Hat Canada Ltd. E-Mail: fnasser@redhat.com 2323 Yonge Street, Suite #300 Toronto, Ontario M4P 2C9