diff options
author | Yao Qi <yao.qi@linaro.org> | 2016-11-11 08:38:31 +0000 |
---|---|---|
committer | Yao Qi <yao.qi@linaro.org> | 2016-11-11 08:38:31 +0000 |
commit | 668e167446b2777869f413841ec05aed59473d9f (patch) | |
tree | cbccde5d014f42cfa1f393b6134f6c268cf1c0fa | |
parent | 65408fa680538f997cdd4b6fb9d74f043a060801 (diff) | |
download | gdb-668e167446b2777869f413841ec05aed59473d9f.zip gdb-668e167446b2777869f413841ec05aed59473d9f.tar.gz gdb-668e167446b2777869f413841ec05aed59473d9f.tar.bz2 |
Remove apply_val_pretty_printer parameter valaddr
This patch removes the parameter valaddr of
extension_language_ops::apply_val_pretty_printer and remove const from
"struct value *val". valaddr can be got in each extension language's
implementation of apply_val_pretty_printer.
gdb:
2016-11-11 Yao Qi <yao.qi@linaro.org>
* cp-valprint.c (cp_print_value): Remove local base_valaddr.
* extension-priv.h (struct extension_language_ops)
<apply_val_pretty_printer>: Remove the second parameter.
Remove const from "struct value *". Callers updated.
* extension.c (apply_ext_lang_val_pretty_printer): Update
comments. Remove parameter valaddr. Remove const from
"struct value *".
* extension.h (apply_ext_lang_val_pretty_printer): Update
declaration.
* guile/guile-internal.h (gdbscm_apply_val_pretty_printer):
Update declaration.
* guile/scm-pretty-print.c (gdbscm_apply_val_pretty_printer):
Remove parameter valaddr. Remove const from "struct value *".
* python/py-prettyprint.c (gdbpy_apply_val_pretty_printer):
Likewise.
* python/python-internal.h (gdbpy_apply_val_pretty_printer):
Update declaration.
-rw-r--r-- | gdb/ChangeLog | 20 | ||||
-rw-r--r-- | gdb/cp-valprint.c | 6 | ||||
-rw-r--r-- | gdb/extension-priv.h | 14 | ||||
-rw-r--r-- | gdb/extension.c | 16 | ||||
-rw-r--r-- | gdb/extension.h | 4 | ||||
-rw-r--r-- | gdb/guile/guile-internal.h | 4 | ||||
-rw-r--r-- | gdb/guile/scm-pretty-print.c | 9 | ||||
-rw-r--r-- | gdb/python/py-prettyprint.c | 9 | ||||
-rw-r--r-- | gdb/python/python-internal.h | 4 | ||||
-rw-r--r-- | gdb/valprint.c | 5 |
10 files changed, 51 insertions, 40 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 96e4f5f..7fc2b4a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,25 @@ 2016-11-11 Yao Qi <yao.qi@linaro.org> + * cp-valprint.c (cp_print_value): Remove local base_valaddr. + * extension-priv.h (struct extension_language_ops) + <apply_val_pretty_printer>: Remove the second parameter. + Remove const from "struct value *". Callers updated. + * extension.c (apply_ext_lang_val_pretty_printer): Update + comments. Remove parameter valaddr. Remove const from + "struct value *". + * extension.h (apply_ext_lang_val_pretty_printer): Update + declaration. + * guile/guile-internal.h (gdbscm_apply_val_pretty_printer): + Update declaration. + * guile/scm-pretty-print.c (gdbscm_apply_val_pretty_printer): + Remove parameter valaddr. Remove const from "struct value *". + * python/py-prettyprint.c (gdbpy_apply_val_pretty_printer): + Likewise. + * python/python-internal.h (gdbpy_apply_val_pretty_printer): + Update declaration. + +2016-11-11 Yao Qi <yao.qi@linaro.org> + * c-lang.h (cp_print_value_fields): Update declaration. * cp-valprint.c (cp_print_value): Update declaration. (cp_print_value_fields): Remove parameter valaddr. Callers diff --git a/gdb/cp-valprint.c b/gdb/cp-valprint.c index 57d5d02..9432c83 100644 --- a/gdb/cp-valprint.c +++ b/gdb/cp-valprint.c @@ -490,7 +490,6 @@ cp_print_value (struct type *type, struct type *real_type, int skip = 0; struct type *baseclass = check_typedef (TYPE_BASECLASS (type, i)); const char *basename = TYPE_NAME (baseclass); - const gdb_byte *base_valaddr = NULL; struct value *base_val = NULL; if (BASETYPE_VIA_VIRTUAL (type, i)) @@ -551,18 +550,15 @@ cp_print_value (struct type *type, struct type *real_type, thisoffset = 0; boffset = 0; thistype = baseclass; - base_valaddr = value_contents_for_printing_const (base_val); do_cleanups (back_to); } else { - base_valaddr = valaddr; base_val = val; } } else { - base_valaddr = valaddr; base_val = val; } } @@ -591,7 +587,7 @@ cp_print_value (struct type *type, struct type *real_type, baseclass if possible. */ if (!options->raw) result - = apply_ext_lang_val_pretty_printer (baseclass, base_valaddr, + = apply_ext_lang_val_pretty_printer (baseclass, thisoffset + boffset, value_address (base_val), stream, recurse, diff --git a/gdb/extension-priv.h b/gdb/extension-priv.h index 26bd21f..161d99b 100644 --- a/gdb/extension-priv.h +++ b/gdb/extension-priv.h @@ -171,19 +171,19 @@ struct extension_language_ops void (*free_type_printers) (const struct extension_language_defn *, struct ext_lang_type_printers *); - /* Try to pretty-print a value of type TYPE located at VALADDR - + EMBEDDED_OFFSET, which came from the inferior at address ADDRESS - + EMBEDDED_OFFSET, onto stdio stream STREAM according to OPTIONS. - VAL is the whole object that came from ADDRESS. VALADDR must point to - the head of VAL's contents buffer. + /* Try to pretty-print a value of type TYPE located at VAL's contents + buffer + EMBEDDED_OFFSET, which came from the inferior at address + ADDRESS + EMBEDDED_OFFSET, onto stdio stream STREAM according to + OPTIONS. + VAL is the whole object that came from ADDRESS. Returns EXT_LANG_RC_OK upon success, EXT_LANG_RC_NOP if the value is not recognized, and EXT_LANG_RC_ERROR if an error was encountered. */ enum ext_lang_rc (*apply_val_pretty_printer) (const struct extension_language_defn *, - struct type *type, const gdb_byte *valaddr, + struct type *type, LONGEST embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, - const struct value *val, const struct value_print_options *options, + struct value *val, const struct value_print_options *options, const struct language_defn *language); /* GDB access to the "frame filter" feature. diff --git a/gdb/extension.c b/gdb/extension.c index c9f5664..40c63a6 100644 --- a/gdb/extension.c +++ b/gdb/extension.c @@ -478,11 +478,11 @@ free_ext_lang_type_printers (struct ext_lang_type_printers *printers) xfree (printers); } -/* Try to pretty-print a value of type TYPE located at VALADDR - + EMBEDDED_OFFSET, which came from the inferior at address ADDRESS - + EMBEDDED_OFFSET, onto stdio stream STREAM according to OPTIONS. - VAL is the whole object that came from ADDRESS. VALADDR must point to - the head of VAL's contents buffer. +/* Try to pretty-print a value of type TYPE located at VAL's contents + buffer + EMBEDDED_OFFSET, which came from the inferior at address + ADDRESS + EMBEDDED_OFFSET, onto stdio stream STREAM according to + OPTIONS. + VAL is the whole object that came from ADDRESS. Returns non-zero if the value was successfully pretty-printed. Extension languages are tried in the order specified by @@ -496,10 +496,10 @@ free_ext_lang_type_printers (struct ext_lang_type_printers *printers) errors that trigger an exception in the extension language. */ int -apply_ext_lang_val_pretty_printer (struct type *type, const gdb_byte *valaddr, +apply_ext_lang_val_pretty_printer (struct type *type, LONGEST embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, - const struct value *val, + struct value *val, const struct value_print_options *options, const struct language_defn *language) { @@ -512,7 +512,7 @@ apply_ext_lang_val_pretty_printer (struct type *type, const gdb_byte *valaddr, if (extlang->ops->apply_val_pretty_printer == NULL) continue; - rc = extlang->ops->apply_val_pretty_printer (extlang, type, valaddr, + rc = extlang->ops->apply_val_pretty_printer (extlang, type, embedded_offset, address, stream, recurse, val, options, language); diff --git a/gdb/extension.h b/gdb/extension.h index fa11f25..66bcb03 100644 --- a/gdb/extension.h +++ b/gdb/extension.h @@ -225,10 +225,10 @@ extern char *apply_ext_lang_type_printers (struct ext_lang_type_printers *, extern void free_ext_lang_type_printers (struct ext_lang_type_printers *); extern int apply_ext_lang_val_pretty_printer - (struct type *type, const gdb_byte *valaddr, + (struct type *type, LONGEST embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, - const struct value *val, const struct value_print_options *options, + struct value *val, const struct value_print_options *options, const struct language_defn *language); extern enum ext_lang_bt_status apply_ext_lang_frame_filter diff --git a/gdb/guile/guile-internal.h b/gdb/guile/guile-internal.h index 5f819b8..3865f77 100644 --- a/gdb/guile/guile-internal.h +++ b/gdb/guile/guile-internal.h @@ -597,10 +597,10 @@ extern void gdbscm_preserve_values extern enum ext_lang_rc gdbscm_apply_val_pretty_printer (const struct extension_language_defn *, - struct type *type, const gdb_byte *valaddr, + struct type *type, LONGEST embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, - const struct value *val, + struct value *val, const struct value_print_options *options, const struct language_defn *language); diff --git a/gdb/guile/scm-pretty-print.c b/gdb/guile/scm-pretty-print.c index afdd0c7..5253def 100644 --- a/gdb/guile/scm-pretty-print.c +++ b/gdb/guile/scm-pretty-print.c @@ -957,10 +957,10 @@ ppscm_print_children (SCM printer, enum display_hint hint, enum ext_lang_rc gdbscm_apply_val_pretty_printer (const struct extension_language_defn *extlang, - struct type *type, const gdb_byte *valaddr, + struct type *type, LONGEST embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, - const struct value *val, + struct value *val, const struct value_print_options *options, const struct language_defn *language) { @@ -973,6 +973,7 @@ gdbscm_apply_val_pretty_printer (const struct extension_language_defn *extlang, struct cleanup *cleanups; enum ext_lang_rc result = EXT_LANG_RC_NOP; enum string_repr_result print_result; + const gdb_byte *valaddr = value_contents_for_printing (val); /* No pretty-printer support for unavailable values. */ if (!value_bytes_available (val, embedded_offset, TYPE_LENGTH (type))) @@ -984,9 +985,7 @@ gdbscm_apply_val_pretty_printer (const struct extension_language_defn *extlang, cleanups = make_cleanup (null_cleanup, NULL); /* Instantiate the printer. */ - if (valaddr) - valaddr += embedded_offset; - value = value_from_contents_and_address (type, valaddr, + value = value_from_contents_and_address (type, valaddr + embedded_offset, address + embedded_offset); set_value_component_location (value, val); diff --git a/gdb/python/py-prettyprint.c b/gdb/python/py-prettyprint.c index 3c6a5af..cbc168d 100644 --- a/gdb/python/py-prettyprint.c +++ b/gdb/python/py-prettyprint.c @@ -699,10 +699,10 @@ print_children (PyObject *printer, const char *hint, enum ext_lang_rc gdbpy_apply_val_pretty_printer (const struct extension_language_defn *extlang, - struct type *type, const gdb_byte *valaddr, + struct type *type, LONGEST embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, - const struct value *val, + struct value *val, const struct value_print_options *options, const struct language_defn *language) { @@ -714,6 +714,7 @@ gdbpy_apply_val_pretty_printer (const struct extension_language_defn *extlang, struct cleanup *cleanups; enum ext_lang_rc result = EXT_LANG_RC_NOP; enum string_repr_result print_result; + const gdb_byte *valaddr = value_contents_for_printing (val); /* No pretty-printer support for unavailable values. */ if (!value_bytes_available (val, embedded_offset, TYPE_LENGTH (type))) @@ -725,9 +726,7 @@ gdbpy_apply_val_pretty_printer (const struct extension_language_defn *extlang, cleanups = ensure_python_env (gdbarch, language); /* Instantiate the printer. */ - if (valaddr) - valaddr += embedded_offset; - value = value_from_contents_and_address (type, valaddr, + value = value_from_contents_and_address (type, valaddr + embedded_offset, address + embedded_offset); set_value_component_location (value, val); diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index f3213bb..5f0abf8 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -315,10 +315,10 @@ extern int gdbpy_auto_load_enabled (const struct extension_language_defn *); extern enum ext_lang_rc gdbpy_apply_val_pretty_printer (const struct extension_language_defn *, - struct type *type, const gdb_byte *valaddr, + struct type *type, LONGEST embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, - const struct value *val, + struct value *val, const struct value_print_options *options, const struct language_defn *language); extern enum ext_lang_bt_status gdbpy_apply_frame_filter diff --git a/gdb/valprint.c b/gdb/valprint.c index b18ece3..c0cdb34 100644 --- a/gdb/valprint.c +++ b/gdb/valprint.c @@ -1098,9 +1098,7 @@ val_print (struct type *type, LONGEST embedded_offset, if (!options->raw) { - const gdb_byte *valaddr = value_contents_for_printing (val); - - ret = apply_ext_lang_val_pretty_printer (type, valaddr, embedded_offset, + ret = apply_ext_lang_val_pretty_printer (type, embedded_offset, address, stream, recurse, val, options, language); if (ret) @@ -1223,7 +1221,6 @@ value_print (struct value *val, struct ui_file *stream, { int r = apply_ext_lang_val_pretty_printer (value_type (val), - value_contents_for_printing (val), value_embedded_offset (val), value_address (val), stream, 0, |