+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:
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.
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)
/* 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. */
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);
/* 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)
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
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);
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
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,
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)
{
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)
{
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,
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)