diff options
author | Markus Metzger <mmetzger@sourceware.org> | 2013-03-11 08:53:17 +0000 |
---|---|---|
committer | Markus Metzger <mmetzger@sourceware.org> | 2013-03-11 08:53:17 +0000 |
commit | 946287b73c02d2bd079af1fcf6a3b412365a2851 (patch) | |
tree | 52dfcac0b29260e9936b69e30da40f540bd369ef | |
parent | afedecd388d5a4db011c51c617daa1e7224b79e4 (diff) | |
download | gdb-946287b73c02d2bd079af1fcf6a3b412365a2851.zip gdb-946287b73c02d2bd079af1fcf6a3b412365a2851.tar.gz gdb-946287b73c02d2bd079af1fcf6a3b412365a2851.tar.bz2 |
Add a disassembly flag to omit the pc prefix and use it in the "record
instruction-history" command of record-btrace.
The pc prefix would appear multiple times in the branch trace disassembly,
which is more confusing than helpful.
gdb/
* record-btrace.c (btrace_insn_history): Omit the pc prefix in
the instruction history disassembly.
* disasm.c (dump_insns): Omit the pc prefix, if requested.
* disasm.h (DISASSEMBLY_OMIT_PC): New.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/disasm.c | 4 | ||||
-rw-r--r-- | gdb/disasm.h | 1 | ||||
-rw-r--r-- | gdb/record.c | 4 |
4 files changed, 15 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f1f4611..62fd574 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2013-03-11 Markus Metzger <markus.t.metzger@intel.com> + * record-btrace.c (btrace_insn_history): Omit the pc prefix in + the instruction history disassembly. + * disasm.c (dump_insns): Omit the pc prefix, if requested. + * disasm.h (DISASSEMBLY_OMIT_PC): New. + +2013-03-11 Markus Metzger <markus.t.metzger@intel.com> + * Makefile.in (SFILES): Add record-btrace.c (COMMON_OBS): Add record-btrace.o * record-btrace.c: New. diff --git a/gdb/disasm.c b/gdb/disasm.c index 9d61379..e643c2d 100644 --- a/gdb/disasm.c +++ b/gdb/disasm.c @@ -122,7 +122,9 @@ dump_insns (struct gdbarch *gdbarch, struct ui_out *uiout, num_displayed++; } ui_out_chain = make_cleanup_ui_out_tuple_begin_end (uiout, NULL); - ui_out_text (uiout, pc_prefix (pc)); + + if ((flags & DISASSEMBLY_OMIT_PC) == 0) + ui_out_text (uiout, pc_prefix (pc)); ui_out_field_core_addr (uiout, "address", gdbarch, pc); if (!build_address_symbolic (gdbarch, pc, 0, &name, &offset, &filename, diff --git a/gdb/disasm.h b/gdb/disasm.h index 20ceb2b..3743ccc 100644 --- a/gdb/disasm.h +++ b/gdb/disasm.h @@ -23,6 +23,7 @@ #define DISASSEMBLY_RAW_INSN (0x1 << 1) #define DISASSEMBLY_OMIT_FNAME (0x1 << 2) #define DISASSEMBLY_FILENAME (0x1 << 3) +#define DISASSEMBLY_OMIT_PC (0x1 << 4) struct ui_out; struct ui_file; diff --git a/gdb/record.c b/gdb/record.c index 6ac7a56..6bc1704 100644 --- a/gdb/record.c +++ b/gdb/record.c @@ -411,6 +411,9 @@ get_insn_history_modifiers (char **arg) case 'f': modifiers |= DISASSEMBLY_OMIT_FNAME; break; + case 'p': + modifiers |= DISASSEMBLY_OMIT_PC; + break; default: error (_("Invalid modifier: %c."), *args); } @@ -691,6 +694,7 @@ Print disassembled instructions stored in the execution log.\n\ With a /m modifier, source lines are included (if available).\n\ With a /r modifier, raw instructions in hex are included.\n\ With a /f modifier, function names are omitted.\n\ +With a /p modifier, current position markers are omitted.\n\ With no argument, disassembles ten more instructions after the previous \ disassembly.\n\ \"record instruction-history -\" disassembles ten instructions before a \ |