[PATCH 2/2] Use gdbarch obstack to allocate the TYPE_NAME string in arch_type

Doug Evans xdje42@gmail.com
Sat Aug 29 18:20:00 GMT 2015


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].

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].



More information about the Gdb-patches mailing list