summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Metzger <mmetzger@sourceware.org>2013-03-11 08:53:17 +0000
committerMarkus Metzger <mmetzger@sourceware.org>2013-03-11 08:53:17 +0000
commit946287b73c02d2bd079af1fcf6a3b412365a2851 (patch)
tree52dfcac0b29260e9936b69e30da40f540bd369ef
parentafedecd388d5a4db011c51c617daa1e7224b79e4 (diff)
downloadbinutils-gdb-946287b73c02d2bd079af1fcf6a3b412365a2851.tar.gz
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/ChangeLog7
-rw-r--r--gdb/disasm.c4
-rw-r--r--gdb/disasm.h1
-rw-r--r--gdb/record.c4
4 files changed, 15 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f1f4611f1a5..62fd574f393 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 9d613796e78..e643c2d9e30 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 20ceb2b8c79..3743ccc916b 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 6ac7a56bcd0..6bc1704a25b 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 \