From d34c3604f3eccb57b7143e9db40a040d46d5173d Mon Sep 17 00:00:00 2001 From: kevinb Date: Mon, 15 Dec 2008 18:06:12 +0000 Subject: [PATCH] * generic/gdbtk-cmds.c (valprint.h): Include. (gdb_eval): Fetch print options via get_formatted_print_options. Update call to val_print. (gdb_update_mem): Likewise, but for print_scalar_formatted. * generic/gdbtk-register.c (valprint.h): Include. (get_register): Use get_formatted_print_options. Update calls to val_print. * generic/gdbtk-wrapper.c (valprint.h): Include. (wrap_val_print): Use get_formatted_print_options. Delete variables deref_ref and pretty; assign to equivalent fields in the value_print_options struct instead. Update call to val_print. --- gdb/gdbtk/ChangeLog | 15 +++++++++++++++ gdb/gdbtk/generic/gdbtk-cmds.c | 12 ++++++++++-- gdb/gdbtk/generic/gdbtk-register.c | 11 +++++++++-- gdb/gdbtk/generic/gdbtk-wrapper.c | 13 +++++++------ 4 files changed, 41 insertions(+), 10 deletions(-) diff --git a/gdb/gdbtk/ChangeLog b/gdb/gdbtk/ChangeLog index ac091400ab..f4e6f2ac4a 100644 --- a/gdb/gdbtk/ChangeLog +++ b/gdb/gdbtk/ChangeLog @@ -1,3 +1,18 @@ +2008-12-15 Kevin Buettner + + * generic/gdbtk-cmds.c (valprint.h): Include. + (gdb_eval): Fetch print options via get_formatted_print_options. + Update call to val_print. + (gdb_update_mem): Likewise, but for print_scalar_formatted. + * generic/gdbtk-register.c (valprint.h): Include. + (get_register): Use get_formatted_print_options. Update calls + to val_print. + * generic/gdbtk-wrapper.c (valprint.h): Include. + (wrap_val_print): Use get_formatted_print_options. Delete + variables deref_ref and pretty; assign to equivalent fields + in the value_print_options struct instead. Update call to + val_print. + 2008-10-27 Keith Seitz * generic/gdbtk-stack.c (get_gdb_vars_command): clientData is an diff --git a/gdb/gdbtk/generic/gdbtk-cmds.c b/gdb/gdbtk/generic/gdbtk-cmds.c index b7a3f38464..8c41627251 100644 --- a/gdb/gdbtk/generic/gdbtk-cmds.c +++ b/gdb/gdbtk/generic/gdbtk-cmds.c @@ -43,6 +43,7 @@ #include "exceptions.h" #include "language.h" #include "target.h" +#include "valprint.h" /* tcl header files includes varargs.h unless HAS_STDARG is defined, but gdb uses stdarg.h, so make sure HAS_STDARG is defined. */ @@ -614,6 +615,7 @@ gdb_eval (ClientData clientData, Tcl_Interp *interp, struct ui_file *stb; long dummy; char *result; + struct value_print_options opts; if (objc != 2 && objc != 3) { @@ -624,6 +626,8 @@ gdb_eval (ClientData clientData, Tcl_Interp *interp, if (objc == 3) format = *(Tcl_GetStringFromObj (objv[2], NULL)); + get_formatted_print_options (&opts, format); + expr = parse_expression (Tcl_GetStringFromObj (objv[1], NULL)); old_chain = make_cleanup (free_current_contents, &expr); val = evaluate_expression (expr); @@ -633,7 +637,7 @@ gdb_eval (ClientData clientData, Tcl_Interp *interp, make_cleanup_ui_file_delete (stb); val_print (value_type (val), value_contents (val), value_embedded_offset (val), VALUE_ADDRESS (val), - stb, format, 0, 0, 0, current_language); + stb, 0, &opts, current_language); result = ui_file_xstrdup (stb, &dummy); Tcl_SetObjResult (interp, Tcl_NewStringObj (result, -1)); xfree (result); @@ -2529,9 +2533,13 @@ gdb_update_mem (ClientData clientData, Tcl_Interp *interp, } else { + struct value_print_options opts; + + get_formatted_print_options (&opts, format); + /* print memory to our uiout file and set the table's variable */ ui_file_rewind (stb); - print_scalar_formatted (mptr, val_type, format, asize, stb); + print_scalar_formatted (mptr, val_type, &opts, asize, stb); tmp = ui_file_xstrdup (stb, &dummy); /* See comments above on max_*_len */ diff --git a/gdb/gdbtk/generic/gdbtk-register.c b/gdb/gdbtk/generic/gdbtk-register.c index 257b57c1bd..83cc529365 100644 --- a/gdb/gdbtk/generic/gdbtk-register.c +++ b/gdb/gdbtk/generic/gdbtk-register.c @@ -26,6 +26,7 @@ #include "target.h" #include "gdb_string.h" #include "language.h" +#include "valprint.h" #include #include "gdbtk.h" @@ -329,16 +330,22 @@ get_register (int regnum, map_arg arg) } else { + struct value_print_options opts; + + get_formatted_print_options (&opts, format); + opts.deref_ref = 1; + opts.pretty = Val_pretty_default; + if ((TYPE_CODE (reg_vtype) == TYPE_CODE_UNION) && (strcmp (FIELD_NAME (TYPE_FIELD (reg_vtype, 0)), gdbarch_register_name (current_gdbarch, regnum)) == 0)) { val_print (FIELD_TYPE (TYPE_FIELD (reg_vtype, 0)), buffer, 0, 0, - stb, format, 1, 0, Val_pretty_default, current_language); + stb, 0, &opts, current_language); } else val_print (reg_vtype, buffer, 0, 0, - stb, format, 1, 0, Val_pretty_default, current_language); + stb, 0, &opts, current_language); } res = ui_file_xstrdup (stb, &dummy); diff --git a/gdb/gdbtk/generic/gdbtk-wrapper.c b/gdb/gdbtk/generic/gdbtk-wrapper.c index b2252fb2cc..6faf3d4fbc 100644 --- a/gdb/gdbtk/generic/gdbtk-wrapper.c +++ b/gdb/gdbtk/generic/gdbtk-wrapper.c @@ -25,6 +25,7 @@ #include "block.h" #include "exceptions.h" #include "language.h" +#include "valprint.h" #include "gdbtk-wrapper.h" /* @@ -204,21 +205,21 @@ wrap_val_print (char *a) CORE_ADDR address; struct ui_file *stream; int format; - int deref_ref; int recurse; - enum val_prettyprint pretty; + struct value_print_options opts; type = (struct type *) (*args)->args[0].ptr; valaddr = (gdb_byte *) (*args)->args[1].ptr; address = *(CORE_ADDR *) (*args)->args[2].ptr; stream = (struct ui_file *) (*args)->args[3].ptr; format = (*args)->args[4].integer; - deref_ref = (*args)->args[5].integer; + get_formatted_print_options (&opts, format); + opts.deref_ref = (*args)->args[5].integer; recurse = (*args)->args[6].integer; - pretty = (enum val_prettyprint) (*args)->args[7].integer; + opts.pretty = (enum val_prettyprint) (*args)->args[7].integer; - val_print (type, valaddr, 0, address, stream, format, deref_ref, - recurse, pretty, current_language); + val_print (type, valaddr, 0, address, stream, recurse, &opts, + current_language); return 1; } -- 2.11.0