Introduce gdb_disassembly_flags

For some reason I ended up staring at some of the "int flags" in
btrace-related code, and I got confused because I had no clue what the
flags where supposed to indicate.

Fix that by using enum_flags, so that:
  #1 - it's clear from the type what the flags are about, and
  #2 - the compiler can catch mismatching mistakes

gdb/ChangeLog:
2017-09-04  Pedro Alves  <palves@redhat.com>

	* cli/cli-cmds.c (print_disassembly, disassemble_current_function)
	(disassemble_command): Use gdb_disassembly_flags instead of bare
	int.
	* disasm.c (gdb_pretty_print_disassembler::pretty_print_insn)
	(dump_insns, do_mixed_source_and_assembly_deprecated)
	(do_mixed_source_and_assembly, do_assembly_only, gdb_disassembly):
	Use gdb_disassembly_flags instead of bare int.
	* disasm.h (DISASSEMBLY_SOURCE_DEPRECATED, DISASSEMBLY_RAW_INSN)
	(DISASSEMBLY_OMIT_FNAME, DISASSEMBLY_FILENAME)
	(DISASSEMBLY_OMIT_PC, DISASSEMBLY_SOURCE)
	(DISASSEMBLY_SPECULATIVE): No longer macros.  Instead they're...
	(enum gdb_disassembly_flag): ... values of this new enumeration.
	(gdb_disassembly_flags): Define.
	(gdb_disassembly)
	(gdb_pretty_print_disassembler::pretty_print_insn): Use it.
	* mi/mi-cmd-disas.c (mi_cmd_disassemble): Use
	gdb_disassembly_flags instead of bare int.
	* record-btrace.c (btrace_insn_history)
	(record_btrace_insn_history, record_btrace_insn_history_range)
	(record_btrace_insn_history_from): Use gdb_disassembly_flags
	instead of bare int.
	* record.c (get_insn_history_modifiers, cmd_record_insn_history):
	Use gdb_disassembly_flags instead of bare int.
	* target-debug.h (target_debug_print_gdb_disassembly_flags):
	Define.
	* target-delegates.c: Regenerate.
	* target.c (target_insn_history, target_insn_history_from)
	(target_insn_history_range): Use gdb_disassembly_flags instead of
	bare int.
	* target.h: Include "disasm.h".
	(struct target_ops) <to_insn_history, to_insn_history_from,
	to_insn_history_range>: Use gdb_disassembly_flags instead of bare
	int.
	(target_insn_history, target_insn_history_from)
	(target_insn_history_range): Use gdb_disassembly_flags instead of
	bare int.
This commit is contained in:
Pedro Alves
2017-09-04 18:23:22 +01:00
parent 9521ecda68
commit 9a24775b97
11 changed files with 113 additions and 55 deletions

View File

@@ -74,6 +74,7 @@ struct inferior;
#include "btrace.h"
#include "record.h"
#include "command.h"
#include "disasm.h"
#include "break-common.h" /* For enum target_hw_bp_type. */
@@ -1200,7 +1201,8 @@ struct target_ops
the current position.
If SIZE < 0, disassemble abs (SIZE) preceding instructions; otherwise,
disassemble SIZE succeeding instructions. */
void (*to_insn_history) (struct target_ops *, int size, int flags)
void (*to_insn_history) (struct target_ops *, int size,
gdb_disassembly_flags flags)
TARGET_DEFAULT_NORETURN (tcomplain ());
/* Disassemble SIZE instructions in the recorded execution trace around
@@ -1208,13 +1210,15 @@ struct target_ops
If SIZE < 0, disassemble abs (SIZE) instructions before FROM; otherwise,
disassemble SIZE instructions after FROM. */
void (*to_insn_history_from) (struct target_ops *,
ULONGEST from, int size, int flags)
ULONGEST from, int size,
gdb_disassembly_flags flags)
TARGET_DEFAULT_NORETURN (tcomplain ());
/* Disassemble a section of the recorded execution trace from instruction
BEGIN (inclusive) to instruction END (inclusive). */
void (*to_insn_history_range) (struct target_ops *,
ULONGEST begin, ULONGEST end, int flags)
ULONGEST begin, ULONGEST end,
gdb_disassembly_flags flags)
TARGET_DEFAULT_NORETURN (tcomplain ());
/* Print a function trace of the recorded execution trace.
@@ -2509,13 +2513,15 @@ extern void target_goto_record_end (void);
extern void target_goto_record (ULONGEST insn);
/* See to_insn_history. */
extern void target_insn_history (int size, int flags);
extern void target_insn_history (int size, gdb_disassembly_flags flags);
/* See to_insn_history_from. */
extern void target_insn_history_from (ULONGEST from, int size, int flags);
extern void target_insn_history_from (ULONGEST from, int size,
gdb_disassembly_flags flags);
/* See to_insn_history_range. */
extern void target_insn_history_range (ULONGEST begin, ULONGEST end, int flags);
extern void target_insn_history_range (ULONGEST begin, ULONGEST end,
gdb_disassembly_flags flags);
/* See to_call_history. */
extern void target_call_history (int size, int flags);