From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20872 invoked by alias); 28 Oct 2008 16:25:54 -0000 Received: (qmail 20769 invoked by uid 22791); 28 Oct 2008 16:25:51 -0000 X-Spam-Check-By: sourceware.org Received: from mtagate1.de.ibm.com (HELO mtagate1.de.ibm.com) (195.212.17.161) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 28 Oct 2008 16:25:07 +0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate1.de.ibm.com (8.13.1/8.13.1) with ESMTP id m9SGP0vw011843 for ; Tue, 28 Oct 2008 16:25:00 GMT Received: from d12av02.megacenter.de.ibm.com (d12av02.megacenter.de.ibm.com [9.149.165.228]) by d12nrmr1607.megacenter.de.ibm.com (8.13.8/8.13.8/NCO v9.1) with ESMTP id m9SGP0Ru2580490 for ; Tue, 28 Oct 2008 17:25:00 +0100 Received: from d12av02.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id m9SGOx65015680 for ; Tue, 28 Oct 2008 17:25:00 +0100 Received: from tuxmaker.boeblingen.de.ibm.com (tuxmaker.boeblingen.de.ibm.com [9.152.85.9]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.12.11) with SMTP id m9SGOxVt015677; Tue, 28 Oct 2008 17:24:59 +0100 Message-Id: <200810281624.m9SGOxVt015677@d12av02.megacenter.de.ibm.com> Received: by tuxmaker.boeblingen.de.ibm.com (sSMTP sendmail emulation); Tue, 28 Oct 2008 17:24:59 +0100 Subject: Re: [RFC/RFA] add struct parse_context to all command functions To: tromey@redhat.com Date: Tue, 28 Oct 2008 16:27:00 -0000 From: "Ulrich Weigand" Cc: brobecker@adacore.com (Joel Brobecker), gdb-patches@sourceware.org In-Reply-To: from "Tom Tromey" at Oct 27, 2008 09:38:39 AM X-Mailer: ELM [version 2.5 PL2] MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-10/txt/msg00677.txt.bz2 Tom Tromey wrote: > 2008-10-27 Tom Tromey > > * varobj.c (value_get_print_value): Include valprint.h. > (value_get_print_value): Use get_formatted_print_options. > * value.h (struct value_print_options): Declare. > (value_print, val_print, common_val_print, val_print_string): > Update. > * value.c: Include valprint.h. > (show_values): Use get_user_print_options. > (show_convenience): Likewise. > * valprint.h (prettyprint_arrays, prettyprint_structs): Don't > declare. > (struct value_print_options): New type. > (vtblprint, unionprint, addressprint, objectprint, print_max, > inspect_it, repeat_count_threshold, output_format, > stop_print_at_null): Don't declare. > (user_print_options, get_user_print_options, > get_raw_print_options, get_formatted_print_options): Declare. > (print_array_indexes_p): Don't declare. > (maybe_print_array_index, val_print_array_elements): Update. > * valprint.c (print_max): Remove. > (user_print_options): New global. > (get_user_print_options, get_raw_print_options, > get_formatted_print_options): New functions. > (print_array_indexes, repeat_count_threshold, stop_print_at_null, > prettyprint_structs, prettyprint_arrays, unionprint, > addressprint): Remove. > (val_print): Remove format, deref_ref, pretty arguments; add > options. Update. > (common_val_print): Likewise. > (print_array_indexes_p): Remove. > (maybe_print_array_index): Remove format, pretty arguments; add > options. Update. > (val_print_array_elements): Remove format, deref_ref, pretty > arguments; add options. Update. > (val_print_string): Add options argument. Update. > (_initialize_valprint): Use user_print_options. > (output_format): Remove. > (set_output_radix_1): Use user_print_options. > * typeprint.c: Include valprint.h. > (objectprint): Don't declare. > (whatis_exp): Use get_user_print_options. > * tui/tui-regs.c: Include valprint.h. > (tui_register_format): Use get_formatted_print_options. > * tracepoint.c: Include valprint.h. > (addressprint): Don't declare. > (trace_mention): Use get_user_print_options. > (tracepoints_info): Likewise. > * stack.c (print_frame_args): Use get_raw_print_options. > (print_frame_info): Use get_user_print_options. > (print_frame): Likewise. > * sh64-tdep.c: Include valprint.h > (sh64_do_register): Use get_formatted_print_options. > * scm-valprint.c (scm_inferior_print): Remove format, deref_ref, > pretty arguments; add options. > (scm_scmlist_print): Likewise. Update. > (scm_scmval_print): Likewise. > (scm_val_print): Likewise. > (scm_value_print): Remove format, pretty arguments; add options. > Update. > * scm-lang.h (scm_value_print, scm_val_print, scm_scmval_print): > Update. > * scm-lang.c (scm_printstr): Add options argument. > * python/python-value.c: Include valprint.h. > (valpy_str): Use get_user_print_options. > * printcmd.c: Include valprint.h. > (addressprint): Don't declare. > (inspect_it): Remove. > (print_formatted): Remove format option; add options. Update. > (print_scalar_formatted): Likewise. > (print_address_demangle): Use get_user_print_options. > (do_examine): Use get_formatted_print_options. > (print_command_1): Likewise. > (output_command): Use get_formatted_print_options. > (do_one_display): Likewise. > (print_variable_value): Use get_user_print_options. > * p-valprint.c (pascal_val_print): Remove format, deref_ref, > pretty arguments; add options. Update. > (pascal_value_print): Remove format, pretty arguments; add > options. Update. > (vtblprint, objectprint): Don't declare. > (pascal_static_field_print): Remove. > (pascal_object_print_value_fields): Remove format, pretty > arguments; add options. Update. > (pascal_object_print_static_field): Likewise. > (_initialize_pascal_valprint): Use user_print_options. Update. > * p-lang.h (pascal_val_print, pascal_value_print, > pascal_printstr, pascal_object_print_value_fields): Update. > (vtblprint, static_field_print): Don't declare. > * p-lang.c (pascal_printstr): Add options argument. Update. > * objc-lang.c (objc_printstr): Add options argument. Update. > * mt-tdep.c: Include valprint.h. > (mt_registers_info): Use get_raw_print_options. > * mips-tdep.c: Include valprint.h. > (mips_print_fp_register): Use get_formatted_print_options. > (mips_print_register): Likewise. > * mi/mi-main.c: Include valprint.h. > (get_register): Use get_user_print_options. > (mi_cmd_data_evaluate_expression): Likewise. > (mi_cmd_data_read_memory): Use get_formatted_print_options. > * mi/mi-cmd-stack.c: Include valprint.h. > (list_args_or_locals): Use get_raw_print_options. > * m2-valprint.c (print_function_pointer_address): Add addressprint > argument. > (m2_print_long_set): Remove format, pretty arguments. > (m2_print_unbounded_array): Remove format, deref_ref, pretty > arguments; add options. Update. > (print_unpacked_pointer): Remove format argument; add options. > Now static. Update. > (print_variable_at_address): Remove format, deref_ref, pretty > arguments; add options. Update. > (m2_print_array_contents): Likewise. > (m2_val_print): Likewise. > * m2-lang.h (m2_val_print): Update. > * m2-lang.c (m2_printstr): Add options argument. Update. > * language.h (struct value_print_options): Declare. > (struct language_defn) : Add options argument. > : Remove format, deref_ref, pretty argument; add > options. > : Remove format, pretty arguments; add options. > : Likewise. > (LA_VAL_PRINT, LA_VALUE_PRINT, LA_PRINT_STRING, > LA_PRINT_ARRAY_INDEX): Update. > (default_print_array_index): Update. > * language.c (default_print_array_index): Remove format, pretty > arguments; add options. Update. > (unk_lang_printstr): Add options argument. > (unk_lang_val_print): Remove format, deref_ref, pretty arguments; > add options. > (unk_lang_value_print): Remove format, pretty arguments; add > options. > * jv-valprint.c (java_value_print): Remove format, pretty > arguments; add options. Update. > (java_print_value_fields): Likewise. > (java_val_print): Remove format, deref_ref, pretty arguments; add > options. Update. > * jv-lang.h (java_val_print, java_value_print): Declare. > * infcmd.c: Include valprint.h. > (print_return_value): Use get_raw_print_options. > (default_print_registers_info): Use get_user_print_options, > get_formatted_print_options. > (registers_info): Use get_formatted_print_options. > * gdbtypes.h (struct value_print_options): Declare. > (print_scalar_formatted): Update. > * f-valprint.c (f77_print_array_1): Remove format, deref_ref, > pretty arguments; add options. Update. > (f77_print_array): Likewise. > (f_val_print): Likewise. > * f-lang.h (f_val_print): Update. > * f-lang.c (f_printstr): Add options argument. Update. > (c_value_print): Update declaration. > * expprint.c: Include valprint.h. > (print_subexp_standard): Use get_raw_print_options, > get_user_print_options. > * eval.c: Include valprint.h. > (objectprint): Don't declare. > (evaluate_subexp_standard): Use get_user_print_options. > * cp-valprint.c (vtblprint, objectprint, static_field_print): > Remove. > (cp_print_value_fields): Remove format, pretty arguments; add > options. Update. > (cp_print_value): Likewise. > (cp_print_static_field): Likewise. > (_initialize_cp_valprint): Use user_print_options. Update. > * c-valprint.c (print_function_pointer_address): Add addressprint > argument. > (c_val_print): Remove format, deref_ref, pretty arguments; add > options. Update. > (c_value_print): Add options argument. Update. > * c-lang.h (c_val_print, c_value_print, c_printstr): Update. > (vtblprint, static_field_print): Don't declare. > (cp_print_value_fields): Update. > * c-lang.c (c_printstr): Add options argument. Update. > * breakpoint.c: Include valprint.h. > (addressprint): Don't declare. > (watchpoint_value_print): Use get_user_print_options. > (print_one_breakpoint_location): Likewise. > (breakpoint_1, print_it_catch_fork, print_it_catch_vfork, mention, > print_exception_catchpoint): Likewise. > * auxv.c (fprint_target_auxv): Don't declare addressprint. Use > get_user_print_options. > * ada-valprint.c (struct ada_val_print_args): Remove format, > deref_ref, and pretty; add options. > (print_optional_low_bound): Add options argument. > (val_print_packed_array_elements): Remove format and pretty > arguments; add options. Update. > (printstr): Add options argument. Update. > (ada_printstr): Likewise. > (ada_val_print): Remove format, deref_ref, pretty arguments; add > options argument. Update. > (ada_val_print_stub): Update. > (ada_val_print_array): Remove format, deref_ref, pretty arguments; > add options. Update. > (ada_val_print_1): Likewise. > (print_variant_part): Likewise. > (ada_value_print): Remove format, pretty arguments; add options. > Update. > (print_record): Likewise. > (print_field_values): Likewise. > * ada-lang.h (ada_val_print, ada_value_print, ada_printstr): > Update. > * ada-lang.c (ada_print_array_index): Add options argument; remove > format and pretty arguments. > (print_one_exception): Use get_user_print_options. > > 2008-10-27 Tom Tromey > > * gdb.base/exprs.exp (test_expr): Add enum formatting tests. This is OK, thanks! I've noticed couple of things that might still be cleaned up somewhat, but this can be done as a follow-up patch (if at all): - As all the top-level val_print callers set deref_ref to 1, maybe the default user_print_options should have that value, making most (all?) of the explicit opts.deref_ref = 1 statements obsolete. - Maybe the "size" argument (to the print_formatted routines) should also move into the struct, together with "format"? - In some cases (e.g. print_subexp_standard) you have multiple instances within the same function where a local "opts" variable is created; maybe it would be clearer to have a common "opts" initialized once for the whole function? Bye, Ulrich -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE Ulrich.Weigand@de.ibm.com