This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] remote: Return NULL extra_info/name if they are empty


On 12/11/2017 06:21 PM, Simon Marchi wrote:
> Commit
> 
>   remote: C++ify thread_item and threads_listing_context
>   21fe1c752e254167d953fa8c846280f63a3a5290
> 
> broke the test gdb.threads/names.exp.  The problem is that since we now
> use an std::string to hold the extra_info, an empty string is returned
> by target_extra_thread_info to print_thread_info_1 when the remote stub
> didn't send any extra info, instead of NULL before.  Because of that,
> print_thread_info_1 prints the extra info between parentheses, which
> results in some spurious empty parentheses.
> 
>   Expected: * 1    Thread 22752.22752 "main" all_threads_ready () at ...
>   Actual  : * 1    Thread 22752.22752 "main" () all_threads_ready () a ...
> 
> Since the bug was introduced by a behavior change in the remote target,
> I chose to fix it on the remote target side by making it return NULL
> when the extra string is empty.  This will avoid possibly changing the
> behavior of the common code and affecting other targets.
> 
> The name field has the same problem.  If a remote stub returns no thread
> names, remote_thread_name will return an empty string instead of NULL,
> so print_thread_info_1 will show empty quotes ("") instead of nothing.
> 
> gdb/ChangeLog:
> 
> 	PR gdb/22556
> 	* remote.c (remote_thread_name): Return NULL if name is empty.
> 	(remote_threads_extra_info): Return NULL if extra info is empty.

Looks good, thanks.

Pedro Alves


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]