This is the mail archive of the
mailing list for the binutils project.
Re: [PATCH 5/6] Add a new gdbarch method to print a single AUXV entry.
- From: John Baldwin <jhb at freebsd dot org>
- To: Pedro Alves <palves at redhat dot com>
- Cc: gdb-patches at sourceware dot org, binutils at sourceware dot org
- Date: Thu, 23 Jun 2016 13:19:21 -0700
- Subject: Re: [PATCH 5/6] Add a new gdbarch method to print a single AUXV entry.
- Authentication-results: sourceware.org; auth=none
- References: <20160616060202 dot 63470-1-jhb at FreeBSD dot org> <20160616060202 dot 63470-6-jhb at FreeBSD dot org> <17933b55-b3e1-51e3-3494-fa35b8cd71fd at redhat dot com>
On Tuesday, June 21, 2016 12:40:16 AM Pedro Alves wrote:
> On 06/16/2016 07:02 AM, John Baldwin wrote:
> > Different platforms have different meanings for auxiliary vector
> > entries. The 'print_auxv' gdbarch method allows an architecture
> > to output a suitable description for platform-specific entries.
> > A fprint_single_auxv function is split out of fprint_target_auxv.
> > This function outputs the description of a single auxiliary vector
> > entry to the specified file using caller-supplied formatting and
> > strings to describe the vector type.
> > The existing switch on auxiliary vector types is moved out of
> > fprint_target_auxv into a new default_print_auxv function.
> > default_print_auxv chooses an appropriate format and description
> > and calls fprint_single_auxv to describe a single vector entry.
> > fprint_target_auxv now invokes the gdbarch 'print_auxv' function
> > on each vector entry. If the function is not present or returns
> > zero, default_printf_auxv is called to output a description for
> > the vector.
> I like the idea. Though, I think we can simplify this. How about:
> - make default_print_auxv be the default gdbarch_print_auxv
> implementation, in gdbarch.sh.
> - make fprint_target_auxv calls gdbarch_print_auxv unconditionally.
> - remove the support for gdbarch_print_auxv returning 0. Instead,
> implementations that want to defer to default_print_auxv simply
> call it directly.
> Also, I think it'd be a bit less confusing to rename things like this:
> gdbarch_print_auxv -> gdbarch_print_auxv_entry
> default_print_auxv -> default_print_auxv_entry
> fprint_single_auxv -> fprint_auxv_entry
> This way methods that print a single entry are consistently named,
> and not so easily confused with methods that print the whole table,
> like fprint_target_auxv.
Agreed, thanks. I've made these changes along with the auxv_format
enum rename and the other issues you've pointed out. Will be posting
a v2 series with those fixes in a bit.