This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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 5/6] Add a new gdbarch method to print a single AUXV entry.


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.

-- 
John Baldwin


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