Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Markus Metzger <markus.t.metzger@intel.com>
To: palves@redhat.com, dje@google.com
Cc: gdb-patches@sourceware.org
Subject: [PATCH 0/6] disasm, record: fix "record instruction-history /m"
Date: Mon, 21 Sep 2015 14:55:00 -0000	[thread overview]
Message-ID: <1442847283-10200-1-git-send-email-markus.t.metzger@intel.com> (raw)

The /m modifier interleaves source lines with the disassembly of recorded
instructions.  This calls disasm.c's do_mixed_source_and_assembly once for
each recorded instruction to be printed.

The latter really does a source print with intermixed disassembly.  To that
purpose, it may reorder instructions to better match the source.  This doesn't
work for printing a single instruction.

The new DISASSEMBLY_SOURCE mode promises to improve that as it preserves the
order of instructions.  It still assumes a consecutive range of instructions
in some places.

Extend it so it can be used for source interleaving in the "record
instruction-history" command.

There is an open regarding MI output of "record instruction-history".  The
current version seems pretty broken as it will put each instruction into its
own "asm_insns" list.  This isn't that bad since there is no real MI support
for record btrace, yet.

This new version puts all instructions into the same list - unless there are
gaps in the trace.  For gaps, we will end up with one list per consecutive trace
segment plus the error message for the gaps.

To get this also into a single "asm_insns" list, we'd need to further extend
struct disas_insn to support gaps instead of instructions.  I have not done
this as I first wanted to see if the current changes are not already too
intrusive.

See also branch users/mmetzger/disasm-vec.

I tested this series on 64-bit IA running RHEL 7.


Markus Metzger (6):
  disasm: change dump_insns to print a single instruction
  disasm: add struct disas_insn to describe to-be-disassembled
    instruction
  disas: add gdb_disassembly_vec
  disasm: use entire line table in line_has_code_p
  disasm: determine preceding lines independent of last_line
  btrace: use gdb_disassembly_vec and new source interleaving method

 gdb/disasm.c        | 549 +++++++++++++++++++++++++++-------------------------
 gdb/disasm.h        |  24 +++
 gdb/record-btrace.c |  54 +++---
 gdb/record.c        |   2 +-
 4 files changed, 341 insertions(+), 288 deletions(-)

-- 
1.8.3.1


             reply	other threads:[~2015-09-21 14:55 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-21 14:55 Markus Metzger [this message]
2015-09-21 14:54 ` [PATCH 6/6] btrace: use gdb_disassembly_vec and new source interleaving method Markus Metzger
2015-09-21 21:48   ` Andrew Burgess
2015-09-22  6:18     ` Metzger, Markus T
2015-09-21 14:54 ` [PATCH 1/6] disasm: change dump_insns to print a single instruction Markus Metzger
2015-09-21 14:54 ` [PATCH 2/6] disasm: add struct disas_insn to describe to-be-disassembled instruction Markus Metzger
2015-10-09 12:51   ` Pedro Alves
2015-10-12  8:44     ` Metzger, Markus T
2015-10-20 11:29       ` Pedro Alves
2015-09-21 14:55 ` [PATCH 3/6] disas: add gdb_disassembly_vec Markus Metzger
2015-10-09 12:49   ` Pedro Alves
2015-10-09 13:17     ` Metzger, Markus T
2015-10-12  8:59       ` Andrew Burgess
2015-10-18 20:39       ` Doug Evans
2015-09-21 14:55 ` [PATCH 5/6] disasm: determine preceding lines independent of last_line Markus Metzger
2015-09-21 14:55 ` [PATCH 4/6] disasm: use entire line table in line_has_code_p Markus Metzger
2015-10-12 14:19 ` [PATCH 0/6] disasm, record: fix "record instruction-history /m" Metzger, Markus T
2015-10-18 21:17   ` Doug Evans
2015-10-19  9:35     ` Metzger, Markus T

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1442847283-10200-1-git-send-email-markus.t.metzger@intel.com \
    --to=markus.t.metzger@intel.com \
    --cc=dje@google.com \
    --cc=gdb-patches@sourceware.org \
    --cc=palves@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox