This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 2/2] Use gdbarch obstack to allocate the TYPE_NAME string in arch_type
- From: Patrick Palka <patrick at parcs dot ath dot cx>
- To: Doug Evans <xdje42 at gmail dot com>
- Cc: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Sat, 29 Aug 2015 17:29:18 -0400
- Subject: Re: [PATCH 2/2] Use gdbarch obstack to allocate the TYPE_NAME string in arch_type
- Authentication-results: sourceware.org; auth=none
- References: <1435631281-31970-1-git-send-email-patrick at parcs dot ath dot cx> <1435631281-31970-2-git-send-email-patrick at parcs dot ath dot cx> <m3io7ydkjq dot fsf at sspiff dot org>
On Sat, Aug 29, 2015 at 2:19 PM, Doug Evans <xdje42@gmail.com> wrote:
> Patrick Palka <patrick@parcs.ath.cx> writes:
>> Since the type whose name is being set is now being allocated on the
>> gdbarch obstack, we should allocate its TYPE_NAME on the obstack too.
>> This reduces the number of individual valgrind warnings for the command
>> "gdb gdb" from ~300 to ~150.
>>
>> Tested on x86_64-unknown-linux-gnu.
>>
>> [ I have a few more patches on top of these that together bring the total
>> number of valgrind warnings for the command "gdb gdb" down to ~30
>> but they are more controversial than these two, and if these aren't OK
>> then the rest definitely aren't OK. ]
>>
>> gdb/ChangeLog:
>>
>> * gdbarch.h (gdbarch_obstack_strdup): Declare.
>> * gdbarch.c (gdbarch_obstack_strdup): Define.
>> * gdbtypes.c (arch_type): Use it.
>
> Hi.
> A couple of comments.
>
> 1) gdbarch.[ch] are machine generated.
> IIUC, you have to edit gdbarch.sh and then run it to regenerate gdbarch.[ch].
Oops :/ I will fix this.
>
> 2) I would have done this slightly differently.
> If the obstack API doesn't provide a strdup functionality,
> I wouldn't insist on trying to add it there. But I would like
> to see it added to gdb in an application-independent way.
> (make it non-gdbarch specific). obstack_strdup sounds sufficiently
> useful and generic enough. If one wants to add a
> gdbarch_obstack_strdup wrapper on top of that, fine by me.
> IOW, add obstack_strdup to gdb_obstack.[ch].
And I will do this as well. Thanks for checking out these two patches.