This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: Don't warn if target reports no threads
On Tuesday, October 19, 2010 19:01:25 Pedro Alves wrote:
> On Tuesday 19 October 2010 15:52:03, Vladimir Prus wrote:
> > In the case when stub refuses to understand all modern thread-listing
> > packets, GDB falls back to qL packet, if if stub refuses to handle that
> > either,
> >
> > reports:
> > RMT ERROR : failed to get remote thread list.
> >
> > The further operation continues normally, and qL is really optional
> > packet, so there's no point scaring a user like that. Is the patch below
> > OK?
>
> remote_get_threadlist has this:
>
> getpkt (&rs->buf, &rs->buf_size, 0);
>
> if (*rs->buf == '\0')
> *result_count = 0;
> else
> ...
>
> would it work to just make that:
>
> if (*rs->buf == '\0')
> return 0;
>
> instead? That'd be easier to read, and leave the warning if
> something did go bust with the thread listing for targets
> that do support the packet (not sure there are any though).
This appears to work just fine. I've checked in the below patch.
- Volodya
Index: ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/ChangeLog,v
retrieving revision 1.12274
diff -u -p -r1.12274 ChangeLog
--- ChangeLog 19 Oct 2010 21:30:53 -0000 1.12274
+++ ChangeLog 20 Oct 2010 09:10:22 -0000
@@ -1,3 +1,9 @@
+2010-10-20 Vladimir Prus <vladimir@codesourcery.com>
+
+ * remote.c (remote_get_threadlist): If we got empty
+ response, bail out immediately, and don't emit any
+ warnings.
+
2010-10-19 Ulrich Weigand <uweigand@de.ibm.com>
* arm-tdep.c (thumb_get_next_pc_raw): Handle Thumb-16 encoding
Index: remote.c
===================================================================
RCS file: /cvs/src/src/gdb/remote.c,v
retrieving revision 1.422
diff -u -p -r1.422 remote.c
--- remote.c 17 Oct 2010 18:24:47 -0000 1.422
+++ remote.c 20 Oct 2010 09:10:23 -0000
@@ -2353,7 +2353,7 @@ remote_get_threadlist (int startflag, th
getpkt (&rs->buf, &rs->buf_size, 0);
if (*rs->buf == '\0')
- *result_count = 0;
+ return 0;
else
*result_count =
parse_threadlist_response (rs->buf + 2, result_limit, &echo_nextthread,