qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/3] scripts/qemu-gdb: Add event tracing support
@ 2015-05-14 16:43 Peter Maydell
  2015-05-14 16:43 ` [Qemu-devel] [PATCH 1/3] scripts/qemu-gdb: Split MtreeCommand into its own module Peter Maydell
                   ` (5 more replies)
  0 siblings, 6 replies; 15+ messages in thread
From: Peter Maydell @ 2015-05-14 16:43 UTC (permalink / raw)
  To: qemu-devel; +Cc: Stefan Hajnoczi, patches

This patchset adds support for two new commands to our
gdb scripts, which allow dynamically enabling and disabling
tracing of events, like this:

(gdb) source scripts/qemu-gdb.py 
(gdb) qemu trace-enable translate_block
Enabled trace event translate_block
Breakpoint 1 at 0xb634f: file ../trace/generated-tracers.h, line 4734.
(gdb) run
[...]
translate_block: tb:0x7fffc69ce010, pc:0x40000000, tb_code:0x7fffd39ce000
translate_block: tb:0x7fffc69ce078, pc:0x40010000, tb_code:0x7fffd39ce140
translate_block: tb:0x7fffc69ce0e0, pc:0x40010034, tb_code:0x7fffd39ce180
translate_block: tb:0x7fffc69ce148, pc:0x40013700, tb_code:0x7fffd39ce1d0
translate_block: tb:0x7fffc69ce1b0, pc:0x40013710, tb_code:0x7fffd39ce270
translate_block: tb:0x7fffc69ce218, pc:0x4001003c, tb_code:0x7fffd39ce310
[etc]

This works by setting custom breakpoints on the stub functions
trace_<eventname> that the null tracing backend creates. It
probably doesn't work with an optimised build, but on the other
hand because it's purely implemented within gdb you can use a
tool like 'rr' (http://rr-project.org/) to record a run with no
tracing enabled and then turn the tracing on and off as you desire
during the replay.

Patches one and two do some initial splitting of qemu-gdb.py into
separate modules just to keep it from growing unhelpfully large.

-- PMM


Peter Maydell (3):
  scripts/qemu-gdb: Split MtreeCommand into its own module
  scripts/qemu-gdb: Split CoroutineCommand into its own file
  scripts/qemu-gdb: Add support for printing trace events

 scripts/qemu-gdb.py          | 144 +++------------------------------
 scripts/qemugdb/__init__.py  |  28 +++++++
 scripts/qemugdb/coroutine.py |  91 +++++++++++++++++++++
 scripts/qemugdb/mtree.py     |  82 +++++++++++++++++++
 scripts/qemugdb/trace.py     | 188 +++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 398 insertions(+), 135 deletions(-)
 create mode 100644 scripts/qemugdb/__init__.py
 create mode 100644 scripts/qemugdb/coroutine.py
 create mode 100644 scripts/qemugdb/mtree.py
 create mode 100644 scripts/qemugdb/trace.py

-- 
1.9.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2015-09-22 15:40 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-14 16:43 [Qemu-devel] [PATCH 0/3] scripts/qemu-gdb: Add event tracing support Peter Maydell
2015-05-14 16:43 ` [Qemu-devel] [PATCH 1/3] scripts/qemu-gdb: Split MtreeCommand into its own module Peter Maydell
2015-05-14 16:43 ` [Qemu-devel] [PATCH 2/3] scripts/qemu-gdb: Split CoroutineCommand into its own file Peter Maydell
2015-05-14 16:43 ` [Qemu-devel] [PATCH 3/3] scripts/qemu-gdb: Add support for printing trace events Peter Maydell
2015-09-22 14:52   ` Paolo Bonzini
2015-09-22 15:39     ` Peter Maydell
2015-05-15  7:58 ` [Qemu-devel] [PATCH 0/3] scripts/qemu-gdb: Add event tracing support Markus Armbruster
2015-05-15  9:09   ` Peter Maydell
2015-05-15 12:18     ` Markus Armbruster
2015-05-15 12:39       ` Jan Kiszka
2015-05-15 13:21         ` Markus Armbruster
2015-05-15 13:36           ` Jan Kiszka
2015-05-15 14:18             ` Markus Armbruster
2015-05-18 13:28 ` Stefan Hajnoczi
2015-05-18 13:31 ` Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).