[RFA] Change frame_filter_flags to use DEF_ENUM_FLAGS_TYPE

Message ID 20170427231728.27581-1-tom@tromey.com
State New, archived
Headers

Commit Message

Tom Tromey April 27, 2017, 11:17 p.m. UTC
  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.

ChangeLog
2017-04-25  Tom Tromey  <tom@tromey.com>

	* 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)
	<apply_frame_filter>: 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(-)
  

Comments

Sergio Durigan Junior April 28, 2017, 3:43 a.m. UTC | #1
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  <tom@tromey.com>
>
> 	* 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)
> 	<apply_frame_filter>: 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  <tom@tromey.com>
> +
> +	* 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)
> +	<apply_frame_filter>: Change type of "flags".
> +
>  2017-04-22  Tom Tromey  <tom@tromey.com>
>  
>  	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,
  
Pedro Alves April 28, 2017, 10:56 a.m. UTC | #2
On 04/28/2017 04:43 AM, Sergio Durigan Junior wrote:
> 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.

(and catch misuses at compile time.)

> 
> LGTM.

To me too.

Thanks,
Pedro Alves
  
Tom Tromey April 28, 2017, 1:47 p.m. UTC | #3
>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes:

>> LGTM.

Pedro> To me too.

Thanks for the reviews.  I wrote this on top of an earlier patch, so I'm
just going to sit on it until that one is ready.

Tom
  

Patch

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  <tom@tromey.com>
+
+	* 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)
+	<apply_frame_filter>: Change type of "flags".
+
 2017-04-22  Tom Tromey  <tom@tromey.com>
 
 	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)