From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11649 invoked by alias); 11 Mar 2002 15:08:25 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 11592 invoked from network); 11 Mar 2002 15:08:20 -0000 Received: from unknown (HELO kerberos.suse.cz) (195.47.106.10) by sources.redhat.com with SMTP; 11 Mar 2002 15:08:20 -0000 Received: from chimera.suse.cz (chimera.suse.cz [10.20.0.2]) by kerberos.suse.cz (SuSE SMTP server) with ESMTP id 64FF659D352; Mon, 11 Mar 2002 16:08:19 +0100 (CET) Received: from suse.cz (leviathan.suse.cz [10.20.1.56]) by chimera.suse.cz (8.11.0/8.11.0/SuSE Linux 8.11.0-0.4) with ESMTP id g2BF8Jp29502; Mon, 11 Mar 2002 16:08:19 +0100 X-Authentication-Warning: chimera.suse.cz: Host leviathan.suse.cz [10.20.1.56] claimed to be suse.cz Message-ID: <3C8CC863.8030206@suse.cz> Date: Mon, 11 Mar 2002 07:08:00 -0000 From: Michal Ludvig Organization: SuSE CR User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.8) Gecko/20020204 X-Accept-Language: cs, cz, en MIME-Version: 1.0 To: Andrew Cagney Cc: gdb-patches@sources.redhat.com Subject: Re: [RFA] remote debugging patches References: <3C8BA71F.20807@suse.cz> <3C8BBEFC.5040504@cygnus.com> Content-Type: multipart/mixed; boundary="------------080107040809050309020709" X-SW-Source: 2002-03/txt/msg00156.txt.bz2 This is a multi-part message in MIME format. --------------080107040809050309020709 Content-Type: text/plain; charset=ISO-8859-2; format=flowed Content-Transfer-Encoding: 7bit Content-length: 655 Andrew Cagney wrote: > Yes fine, er almost. Can you change the name of this to > ``DONT_WAIT_FOREVER_FLAG'' and suggest making it an enum. (so GDB can > print it :-) Why DONT_WAIT_FOREWER? IMHO wait_forewer is correct, because 0 means don't wait forewer (the default) and 1 means yes, wait forever. > If you're feeling really inspired (...), you could even introduce an > enum to handle both the DO and DONT cases. OK, I changed it to enum called wait_forever_flag with values yes and no. Now it should be clear enough whether to wait or not. :-) Michal Ludvig -- * SuSE CR, s.r.o * mludvig@suse.cz * +420 2 9654 5373 * http://www.suse.cz --------------080107040809050309020709 Content-Type: text/plain; name="gdb-remote-03111602.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline; filename="gdb-remote-03111602.diff" Content-length: 11136 Index: remote.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvs/src/src/gdb/remote.c,v retrieving revision 1.77 diff -u -r1.77 remote.c --- remote.c 2002/02/27 01:18:39 1.77 +++ remote.c 2002/03/11 15:02:18 @@ -55,6 +55,9 @@ =20 #include "gdbcore.h" /* for exec_bfd */ =20 +/* Set this default to 'yes' when you don't want to timeout getpkt() */ +static enum { no, yes } wait_forever_flag=3Dno; + /* Prototypes for local functions */ static void cleanup_sigint_signal_handler (void *dummy); static void initialize_sigint_signal_handler (void); @@ -1032,7 +1035,7 @@ else sprintf (&buf[2], "%x", th); putpkt (buf); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); if (gen) general_thread =3D th; else @@ -1052,7 +1055,7 @@ else sprintf (buf, "T%08x", tid); putpkt (buf); - getpkt (buf, sizeof (buf), 0); + getpkt (buf, sizeof (buf), wait_forever_flag); return (buf[0] =3D=3D 'O' && buf[1] =3D=3D 'K'); } =20 @@ -1550,7 +1553,7 @@ =20 pack_threadinfo_request (threadinfo_pkt, fieldset, threadid); putpkt (threadinfo_pkt); - getpkt (threadinfo_pkt, (rs->remote_packet_size), 0); + getpkt (threadinfo_pkt, (rs->remote_packet_size), wait_forever_flag); result =3D remote_unpack_thread_info_response (threadinfo_pkt + 2, threa= did, info); return result; @@ -1630,7 +1633,7 @@ pack_threadlist_request (threadlist_packet, startflag, result_limit, nextthread); putpkt (threadlist_packet); - getpkt (t_response, (rs->remote_packet_size), 0); + getpkt (t_response, (rs->remote_packet_size), wait_forever_flag); =20 *result_count =3D parse_threadlist_response (t_response + 2, result_limit, &echo_nextthr= ead, @@ -1740,7 +1743,7 @@ char *buf =3D alloca (rs->remote_packet_size); =20 putpkt ("qC"); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); if (buf[0] =3D=3D 'Q' && buf[1] =3D=3D 'C') return pid_to_ptid (strtol (&buf[2], NULL, 16)); else @@ -1782,7 +1785,7 @@ { putpkt ("qfThreadInfo"); bufp =3D buf; - getpkt (bufp, (rs->remote_packet_size), 0); + getpkt (bufp, (rs->remote_packet_size), wait_forever_flag); if (bufp[0] !=3D '\0') /* q packet recognized */ {=09 while (*bufp++ =3D=3D 'm') /* reply contains one or more TID */ @@ -1796,7 +1799,7 @@ while (*bufp++ =3D=3D ','); /* comma-separated list */ putpkt ("qsThreadInfo"); bufp =3D buf; - getpkt (bufp, (rs->remote_packet_size), 0); + getpkt (bufp, (rs->remote_packet_size), wait_forever_flag); } return; /* done */ } @@ -1837,7 +1840,7 @@ { sprintf (bufp, "qThreadExtraInfo,%x", PIDGET (tp->ptid)); putpkt (bufp); - getpkt (bufp, (rs->remote_packet_size), 0); + getpkt (bufp, (rs->remote_packet_size), wait_forever_flag); if (bufp[0] !=3D 0) { n =3D min (strlen (bufp) / 2, sizeof (display_buf)); @@ -1893,7 +1896,7 @@ /* Now query for status so this looks just like we restarted gdbserver from scratch. */ putpkt ("?"); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); } =0C /* Clean up connection to a remote debugger. */ @@ -1921,7 +1924,7 @@ =20 putpkt ("qOffsets"); =20 - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); =20 if (buf[0] =3D=3D '\000') return; /* Return silently. Stub doesn't support @@ -2202,7 +2205,7 @@ /* Invite target to request symbol lookups. */ =20 putpkt ("qSymbol::"); - getpkt (reply, (rs->remote_packet_size), 0); + getpkt (reply, (rs->remote_packet_size), wait_forever_flag); packet_ok (reply, &remote_protocol_qSymbol); =20 while (strncmp (reply, "qSymbol:", 8) =3D=3D 0) @@ -2218,7 +2221,7 @@ paddr_nz (SYMBOL_VALUE_ADDRESS (sym)), &reply[8]); putpkt (msg); - getpkt (reply, (rs->remote_packet_size), 0); + getpkt (reply, (rs->remote_packet_size), wait_forever_flag); } } =20 @@ -2304,7 +2307,7 @@ /* Tell the remote that we are using the extended protocol. */ char *buf =3D alloca (rs->remote_packet_size); putpkt ("!"); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); } #ifdef SOLIB_CREATE_INFERIOR_HOOK /* FIXME: need a master target_open vector from which all=20 @@ -2418,7 +2421,7 @@ /* Tell the remote that we are using the extended protocol. */ char *buf =3D alloca (rs->remote_packet_size); putpkt ("!"); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); } #ifdef SOLIB_CREATE_INFERIOR_HOOK /* FIXME: need a master target_open vector from which all=20 @@ -2601,7 +2604,7 @@ *p++ =3D 0; =20 putpkt (buf); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); =20 if (packet_ok (buf, &remote_protocol_E) =3D=3D PACKET_OK) return; @@ -2619,7 +2622,7 @@ *p++ =3D 0; =20 putpkt (buf); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); =20 if (packet_ok (buf, &remote_protocol_e) =3D=3D PACKET_OK) return; @@ -2690,7 +2693,7 @@ *p++ =3D 0; =20 putpkt (buf); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); =20 if (packet_ok (buf, &remote_protocol_E) =3D=3D PACKET_OK) goto register_event_loop; @@ -2708,7 +2711,7 @@ *p++ =3D 0; =20 putpkt (buf); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); =20 if (packet_ok (buf, &remote_protocol_e) =3D=3D PACKET_OK) goto register_event_loop; @@ -3439,7 +3442,7 @@ if (remote_debug) fprintf_unfiltered (gdb_stdlog, "Bad register packet; fetching a new packet\n"); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); } =20 /* Reply describes registers byte by byte, each byte encoded as two @@ -3695,7 +3698,7 @@ *p =3D '\0'; =20=09 putpkt_binary (buf, (int) (p - buf)); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); =20 if (buf[0] =3D=3D '\0') { @@ -3837,7 +3840,7 @@ } =20=20=20 putpkt_binary (buf, (int) (p - buf)); - getpkt (buf, sizeof_buf, 0); + getpkt (buf, sizeof_buf, wait_forever_flag); =20=20=20 if (buf[0] =3D=3D 'E') { @@ -3902,7 +3905,7 @@ *p =3D '\0'; =20 putpkt (buf); - getpkt (buf, sizeof_buf, 0); + getpkt (buf, sizeof_buf, wait_forever_flag); =20 if (buf[0] =3D=3D 'E') { @@ -3980,7 +3983,7 @@ data_long =3D extract_unsigned_integer (data, len); sprintf (buf, "t%x:%x,%x", startaddr, data_long, mask_long); putpkt (buf); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); if (buf[0] =3D=3D '\0') { /* The stub doesn't support the 't' request. We might want to @@ -4069,7 +4072,7 @@ long sizeof_buf) { putpkt (buf); - getpkt (buf, sizeof_buf, 0); + getpkt (buf, sizeof_buf, wait_forever_flag); =20 if (buf[0] =3D=3D 'E') error ("Remote failure reply: %s", buf); @@ -4658,7 +4661,7 @@ sprintf (p, ",%d", bp_size); =20=20=20=20=20=20=20 putpkt (buf); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); =20 switch (packet_ok (buf, &remote_protocol_Z[Z_PACKET_SOFTWARE_BP])) { @@ -4711,7 +4714,7 @@ sprintf (p, ",%d", bp_size); =20=20=20=20=20=20=20 putpkt (buf); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); =20 return (buf[0] =3D=3D 'E'); } @@ -4766,7 +4769,7 @@ sprintf (p, ",%x", len); =20=20=20 putpkt (buf); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); =20 switch (packet_ok (buf, &remote_protocol_Z[packet])) { @@ -4802,7 +4805,7 @@ p +=3D hexnumstr (p, (ULONGEST) addr); sprintf (p, ",%x", len); putpkt (buf); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); =20 switch (packet_ok (buf, &remote_protocol_Z[packet])) { @@ -4840,7 +4843,7 @@ sprintf (p, ",%x", len); =20 putpkt (buf); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); =20 switch (packet_ok (buf, &remote_protocol_Z[Z_PACKET_HARDWARE_BP])) { @@ -4878,7 +4881,7 @@ sprintf (p, ",%x", len); =20 putpkt(buf); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); =20=20=20 switch (packet_ok (buf, &remote_protocol_Z[Z_PACKET_HARDWARE_BP])) { @@ -5011,7 +5014,7 @@ bfd_get_section_contents (exec_bfd, s, sectdata, 0, size); host_crc =3D crc32 ((unsigned char *) sectdata, size, 0xffffffff); =20 - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); if (buf[0] =3D=3D 'E') error ("target memory fault, section %s, range 0x%08x -- 0x%08x", sectname, lma, lma + size); @@ -5102,7 +5105,7 @@ if (i < 0) return i; =20 - getpkt (outbuf, *bufsiz, 0); + getpkt (outbuf, *bufsiz, wait_forever_flag); =20 return 0; } @@ -5141,7 +5144,7 @@ { /* XXX - see also tracepoint.c:remote_get_noisy_reply() */ buf[0] =3D '\0'; - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); if (buf[0] =3D=3D '\0') error ("Target does not support this command\n"); if (buf[0] =3D=3D 'O' && buf[1] !=3D 'K') @@ -5182,7 +5185,7 @@ puts_filtered ("\n"); putpkt (args); =20 - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); puts_filtered ("received: "); print_packet (buf); puts_filtered ("\n"); @@ -5430,7 +5433,7 @@ error ("Command can only be used when connected to the remote target."= ); =20 putpkt ("qfProcessInfo"); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); if (buf[0] =3D=3D 0) return; /* Silently: target does not support this feature. */ =20 @@ -5441,7 +5444,7 @@ { remote_console_output (&buf[1]); putpkt ("qsProcessInfo"); - getpkt (buf, (rs->remote_packet_size), 0); + getpkt (buf, (rs->remote_packet_size), wait_forever_flag); } } =20 --------------080107040809050309020709--