diff options
author | John Baldwin <jhb@FreeBSD.org> | 2016-06-11 15:51:38 -0700 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2016-06-24 10:34:29 -0700 |
commit | 2faa34476d9e6120eaf389b7f91b7227183fa2ce (patch) | |
tree | d0bdcf321eebfbd385ee4f89df0785063c6078a6 /gdb/auxv.h | |
parent | 3350c5f5de3d2e62dd9de2a76cf2d5d8728d2600 (diff) | |
download | gdb-2faa34476d9e6120eaf389b7f91b7227183fa2ce.zip gdb-2faa34476d9e6120eaf389b7f91b7227183fa2ce.tar.gz gdb-2faa34476d9e6120eaf389b7f91b7227183fa2ce.tar.bz2 |
Add a new gdbarch method to print a single AUXV entry.
Different platforms have different meanings for auxiliary vector
entries. The 'print_auxv_entry' gdbarch method allows an architecture
to output a suitable description for platform-specific entries.
A fprint_auxv_entry 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_entry function.
default_print_auxv_entry chooses an appropriate format and description
and calls fprint_single_auxv to describe a single vector entry.
This function is used as the default 'print_auxv_entry' gdbarch method.
fprint_target_auxv now invokes the gdbarch 'print_auxv_entry' method
on each vector entry.
gdb/ChangeLog:
* auxv.c (fprint_auxv_entry): New function.
(default_print_auxv_entry): New function.
(fprint_target_auxv): Use gdbarch_print_auxv_entry.
* auxv.h (enum auxv_format): New enum.
(fprint_auxv_entry): Declare.
(default_print_auxv_entry): Declare.
* gdbarch.sh (print_auxv_entry): New.
* gdbarch.c, gdbarch.h: Re-generated.
Diffstat (limited to 'gdb/auxv.h')
-rw-r--r-- | gdb/auxv.h | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -46,6 +46,20 @@ extern int target_auxv_parse (struct target_ops *ops, extern int target_auxv_search (struct target_ops *ops, CORE_ADDR match, CORE_ADDR *valp); +/* Print a description of a single AUXV entry on the specified file. */ +enum auxv_format { AUXV_FORMAT_DEC, AUXV_FORMAT_HEX, AUXV_FORMAT_STR }; + +extern void fprint_auxv_entry (struct ui_file *file, const char *name, + const char *description, + enum auxv_format format, CORE_ADDR type, + CORE_ADDR val); + +/* The default implementation of gdbarch_print_auxv_entry. */ + +extern void default_print_auxv_entry (struct gdbarch *gdbarch, + struct ui_file *file, CORE_ADDR type, + CORE_ADDR val); + /* Print the contents of the target's AUXV on the specified file. */ extern int fprint_target_auxv (struct ui_file *file, struct target_ops *ops); |