[PATCH] remote: Return NULL extra_info/name if they are empty
Tue Dec 12 02:06:00 GMT 2017
On 2017-12-11 19:24, Pedro Alves wrote:
> On 12/11/2017 06:21 PM, Simon Marchi wrote:
>> remote: C++ify thread_item and threads_listing_context
>> broke the test gdb.threads/names.exp. The problem is that since we
>> 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
>> 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
>> 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
>> names, remote_thread_name will return an empty string instead of NULL,
>> so print_thread_info_1 will show empty quotes ("") instead of nothing.
>> 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
More information about the Gdb-patches