From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 121705 invoked by alias); 28 Apr 2017 03:44:44 -0000 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 Received: (qmail 120478 invoked by uid 89); 28 Apr 2017 03:43:23 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 28 Apr 2017 03:43:21 +0000 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 37F57C04BD3E; Fri, 28 Apr 2017 03:43:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 37F57C04BD3E Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=sergiodj@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 37F57C04BD3E Received: from localhost (unused-10-15-17-193.yyz.redhat.com [10.15.17.193]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 02AED17D21; Fri, 28 Apr 2017 03:43:06 +0000 (UTC) From: Sergio Durigan Junior To: Tom Tromey Cc: gdb-patches@sourceware.org Subject: Re: [RFA] Change frame_filter_flags to use DEF_ENUM_FLAGS_TYPE References: <20170427231728.27581-1-tom@tromey.com> X-URL: https://sergiodj.net Date: Fri, 28 Apr 2017 03:44:00 -0000 In-Reply-To: <20170427231728.27581-1-tom@tromey.com> (Tom Tromey's message of "Thu, 27 Apr 2017 17:17:28 -0600") Message-ID: <8737cttcxh.fsf@redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-IsSubscribed: yes X-SW-Source: 2017-04/txt/msg00764.txt.bz2 On Thursday, April 27 2017, Tom Tromey wrote: > This changes frame_filter_flags to use DEF_ENUM_FLAGS_TYPE, and > updates all the uses. It also changes the enum constants to use <<, > as suggested by Sergio. Hey, that's awesome, Tom. Thanks for doing this; also, very good to use DEF_ENUM_FLAGS_TYPE. This will make it prettier when printing these values on GDB. > ChangeLog > 2017-04-25 Tom Tromey > > * stack.c (backtrace_command_1): Update. > * python/python-internal.h (gdbpy_apply_frame_filter): Change type > of "flags". > * python/py-framefilter.c (py_print_frame) > (gdbpy_apply_frame_filter): Change type of "flags". > * mi/mi-cmd-stack.c (mi_apply_ext_lang_frame_filter): Change type > of "flags". > (mi_cmd_stack_list_frames, mi_cmd_stack_list_locals) > (mi_cmd_stack_list_args, mi_cmd_stack_list_variables): Update. > * extension.h (enum frame_filter_flag): Rename from > frame_filter_flags. > (frame_filter_flags): Define using DEF_ENUM_FLAGS_TYPE. > (apply_ext_lang_frame_filter): Change type of "flags". > * extension.c (apply_ext_lang_frame_filter): Change type of > "flags". > * extension-priv.h (struct extension_language_ops) > : Change type of "flags". > --- > gdb/ChangeLog | 20 ++++++++++++++++++++ > gdb/extension-priv.h | 3 ++- > gdb/extension.c | 3 ++- > gdb/extension.h | 17 ++++++++++------- > gdb/mi/mi-cmd-stack.c | 11 ++++++----- > gdb/python/py-framefilter.c | 4 ++-- > gdb/python/python-internal.h | 3 ++- > gdb/stack.c | 2 +- > 8 files changed, 45 insertions(+), 18 deletions(-) > > diff --git a/gdb/ChangeLog b/gdb/ChangeLog > index 7571fa9..35a1e81 100644 > --- a/gdb/ChangeLog > +++ b/gdb/ChangeLog > @@ -1,3 +1,23 @@ > +2017-04-25 Tom Tromey > + > + * stack.c (backtrace_command_1): Update. > + * python/python-internal.h (gdbpy_apply_frame_filter): Change type > + of "flags". > + * python/py-framefilter.c (py_print_frame) > + (gdbpy_apply_frame_filter): Change type of "flags". > + * mi/mi-cmd-stack.c (mi_apply_ext_lang_frame_filter): Change type > + of "flags". > + (mi_cmd_stack_list_frames, mi_cmd_stack_list_locals) > + (mi_cmd_stack_list_args, mi_cmd_stack_list_variables): Update. > + * extension.h (enum frame_filter_flag): Rename from > + frame_filter_flags. > + (frame_filter_flags): Define using DEF_ENUM_FLAGS_TYPE. > + (apply_ext_lang_frame_filter): Change type of "flags". > + * extension.c (apply_ext_lang_frame_filter): Change type of > + "flags". > + * extension-priv.h (struct extension_language_ops) > + : Change type of "flags". > + > 2017-04-22 Tom Tromey > > PR python/16497: > diff --git a/gdb/extension-priv.h b/gdb/extension-priv.h > index f77f088..05bb850 100644 > --- a/gdb/extension-priv.h > +++ b/gdb/extension-priv.h > @@ -202,7 +202,8 @@ struct extension_language_ops > or SCR_BT_COMPLETED on success. */ > enum ext_lang_bt_status (*apply_frame_filter) > (const struct extension_language_defn *, > - struct frame_info *frame, int flags, enum ext_lang_frame_args args_type, > + struct frame_info *frame, frame_filter_flags flags, > + enum ext_lang_frame_args args_type, > struct ui_out *out, int frame_low, int frame_high); > > /* Update values held by the extension language when OBJFILE is discarded. > diff --git a/gdb/extension.c b/gdb/extension.c > index cfbae2c..4a7bc6e 100644 > --- a/gdb/extension.c > +++ b/gdb/extension.c > @@ -553,7 +553,8 @@ apply_ext_lang_val_pretty_printer (struct type *type, > rather than trying filters in other extension languages. */ > > enum ext_lang_bt_status > -apply_ext_lang_frame_filter (struct frame_info *frame, int flags, > +apply_ext_lang_frame_filter (struct frame_info *frame, > + frame_filter_flags flags, > enum ext_lang_frame_args args_type, > struct ui_out *out, > int frame_low, int frame_high) > diff --git a/gdb/extension.h b/gdb/extension.h > index cda2ebf..a9e3c85 100644 > --- a/gdb/extension.h > +++ b/gdb/extension.h > @@ -87,24 +87,26 @@ enum ext_lang_bt_status > > /* Flags to pass to apply_extlang_frame_filter. */ > > -enum frame_filter_flags > +enum frame_filter_flag > { > /* Set this flag if frame level is to be printed. */ > - PRINT_LEVEL = 1, > + PRINT_LEVEL = 1 << 0, > > /* Set this flag if frame information is to be printed. */ > - PRINT_FRAME_INFO = 2, > + PRINT_FRAME_INFO = 1 << 1, > > /* Set this flag if frame arguments are to be printed. */ > - PRINT_ARGS = 4, > + PRINT_ARGS = 1 << 2, > > /* Set this flag if frame locals are to be printed. */ > - PRINT_LOCALS = 8, > + PRINT_LOCALS = 1 << 3, > > /* Set this flag if a "More frames" message is to be printed. */ > - PRINT_MORE_FRAMES = 16, > + PRINT_MORE_FRAMES = 1 << 4, > }; > > +DEF_ENUM_FLAGS_TYPE (enum frame_filter_flag, frame_filter_flags); > + > /* A choice of the different frame argument printing strategies that > can occur in different cases of frame filter instantiation. */ > > @@ -235,7 +237,8 @@ extern int apply_ext_lang_val_pretty_printer > const struct language_defn *language); > > extern enum ext_lang_bt_status apply_ext_lang_frame_filter > - (struct frame_info *frame, int flags, enum ext_lang_frame_args args_type, > + (struct frame_info *frame, frame_filter_flags flags, > + enum ext_lang_frame_args args_type, > struct ui_out *out, int frame_low, int frame_high); > > extern void preserve_ext_lang_values (struct objfile *, htab_t copied_types); > diff --git a/gdb/mi/mi-cmd-stack.c b/gdb/mi/mi-cmd-stack.c > index 6250b75..4b9230e 100644 > --- a/gdb/mi/mi-cmd-stack.c > +++ b/gdb/mi/mi-cmd-stack.c > @@ -57,7 +57,8 @@ mi_cmd_enable_frame_filters (const char *command, char **argv, int argc) > /* Like apply_ext_lang_frame_filter, but take a print_values */ > > static enum ext_lang_bt_status > -mi_apply_ext_lang_frame_filter (struct frame_info *frame, int flags, > +mi_apply_ext_lang_frame_filter (struct frame_info *frame, > + frame_filter_flags flags, > enum print_values print_values, > struct ui_out *out, > int frame_low, int frame_high) > @@ -146,7 +147,7 @@ mi_cmd_stack_list_frames (const char *command, char **argv, int argc) > > if (! raw_arg && frame_filters) > { > - int flags = PRINT_LEVEL | PRINT_FRAME_INFO; > + frame_filter_flags flags = PRINT_LEVEL | PRINT_FRAME_INFO; > int py_frame_low = frame_low; > > /* We cannot pass -1 to frame_low, as that would signify a > @@ -262,7 +263,7 @@ mi_cmd_stack_list_locals (const char *command, char **argv, int argc) > > if (! raw_arg && frame_filters) > { > - int flags = PRINT_LEVEL | PRINT_LOCALS; > + frame_filter_flags flags = PRINT_LEVEL | PRINT_LOCALS; > > result = mi_apply_ext_lang_frame_filter (frame, flags, print_value, > current_uiout, 0, 0); > @@ -359,7 +360,7 @@ mi_cmd_stack_list_args (const char *command, char **argv, int argc) > > if (! raw_arg && frame_filters) > { > - int flags = PRINT_LEVEL | PRINT_ARGS; > + frame_filter_flags flags = PRINT_LEVEL | PRINT_ARGS; > int py_frame_low = frame_low; > > /* We cannot pass -1 to frame_low, as that would signify a > @@ -451,7 +452,7 @@ mi_cmd_stack_list_variables (const char *command, char **argv, int argc) > > if (! raw_arg && frame_filters) > { > - int flags = PRINT_LEVEL | PRINT_ARGS | PRINT_LOCALS; > + frame_filter_flags flags = PRINT_LEVEL | PRINT_ARGS | PRINT_LOCALS; > > result = mi_apply_ext_lang_frame_filter (frame, flags, > print_value, > diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c > index 9eef81b..22bf3b0 100644 > --- a/gdb/python/py-framefilter.c > +++ b/gdb/python/py-framefilter.c > @@ -920,7 +920,7 @@ py_print_args (PyObject *filter, > on success. It can also throw an exception RETURN_QUIT. */ > > static enum ext_lang_bt_status > -py_print_frame (PyObject *filter, int flags, > +py_print_frame (PyObject *filter, frame_filter_flags flags, > enum ext_lang_frame_args args_type, > struct ui_out *out, int indent, htab_t levels_printed) > { > @@ -1332,7 +1332,7 @@ bootstrap_python_frame_filters (struct frame_info *frame, > > enum ext_lang_bt_status > gdbpy_apply_frame_filter (const struct extension_language_defn *extlang, > - struct frame_info *frame, int flags, > + struct frame_info *frame, frame_filter_flags flags, > enum ext_lang_frame_args args_type, > struct ui_out *out, int frame_low, int frame_high) > { > diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h > index e84c8d2..b6cca7c 100644 > --- a/gdb/python/python-internal.h > +++ b/gdb/python/python-internal.h > @@ -453,7 +453,8 @@ extern enum ext_lang_rc gdbpy_apply_val_pretty_printer > const struct language_defn *language); > extern enum ext_lang_bt_status gdbpy_apply_frame_filter > (const struct extension_language_defn *, > - struct frame_info *frame, int flags, enum ext_lang_frame_args args_type, > + struct frame_info *frame, frame_filter_flags flags, > + enum ext_lang_frame_args args_type, > struct ui_out *out, int frame_low, int frame_high); > extern void gdbpy_preserve_values (const struct extension_language_defn *, > struct objfile *objfile, > diff --git a/gdb/stack.c b/gdb/stack.c > index 37e8767..7493eb1 100644 > --- a/gdb/stack.c > +++ b/gdb/stack.c > @@ -1797,7 +1797,7 @@ backtrace_command_1 (char *count_exp, int show_locals, int no_filters, > > if (! no_filters) > { > - int flags = PRINT_LEVEL | PRINT_FRAME_INFO | PRINT_ARGS; > + frame_filter_flags flags = PRINT_LEVEL | PRINT_FRAME_INFO | PRINT_ARGS; > enum ext_lang_frame_args arg_type; > > if (show_locals) > -- > 2.9.3 LGTM. Thanks, -- Sergio GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36 Please send encrypted e-mail if possible http://sergiodj.net/