diff options
author | Tom Tromey <tom@tromey.com> | 2017-04-25 22:33:50 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-02-26 09:37:03 -0700 |
commit | d4dd32824a1194718c81773804017ab546cb3aab (patch) | |
tree | f1683b60f523c46e241efbe2cf146c60f03236d9 /gdb | |
parent | 6893c19a8b81a399953edbf26aaef6e714a7ab0e (diff) | |
download | gdb-d4dd32824a1194718c81773804017ab546cb3aab.zip gdb-d4dd32824a1194718c81773804017ab546cb3aab.tar.gz gdb-d4dd32824a1194718c81773804017ab546cb3aab.tar.bz2 |
Change frame_filter_flags to use DEF_ENUM_FLAGS_TYPE
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
2018-02-26 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".
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 20 | ||||
-rw-r--r-- | gdb/extension-priv.h | 3 | ||||
-rw-r--r-- | gdb/extension.c | 3 | ||||
-rw-r--r-- | gdb/extension.h | 17 | ||||
-rw-r--r-- | gdb/mi/mi-cmd-stack.c | 11 | ||||
-rw-r--r-- | gdb/python/py-framefilter.c | 4 | ||||
-rw-r--r-- | gdb/python/python-internal.h | 3 | ||||
-rw-r--r-- | gdb/stack.c | 2 |
8 files changed, 45 insertions, 18 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 906d14c..a569ef3 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,25 @@ 2018-02-26 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". + +2018-02-26 Tom Tromey <tom@tromey.com> + PR python/16497: * stack.c (backtrace_command_1): Set PRINT_MORE_FRAMES flag. Fix off-by-one in py_end computation. diff --git a/gdb/extension-priv.h b/gdb/extension-priv.h index 5843479..b2a4430 100644 --- a/gdb/extension-priv.h +++ b/gdb/extension-priv.h @@ -183,7 +183,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 224b05c..67f83b4 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 7375d72..943792d 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. */ @@ -287,7 +289,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 29c49ff..443d1ed 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 3a3fb97..99d47f2 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 3f1c61f..26400f4 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -459,7 +459,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 4481cc4..ebc49d4 100644 --- a/gdb/stack.c +++ b/gdb/stack.c @@ -1775,7 +1775,7 @@ backtrace_command_1 (const 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) |