v2 -> v3:

  * Use atexit.register() instead of gdb.events.exited.connect() for
    registering a cleanup callback.  That way it's called upon both
    normal and abnormal exit;
  * Wrap code in invoke() methods in try-finally block, so that
    restore_regs() is called unconditionally even we caught an exception;
  * Restore registers in cleanup;
  * Set dirty flag early on in patch_regs() to make sure registers get
    restored if we failed while patching.

v1 -> v2:

  * Use pty module instead of script(1) for producing colored output;
  * Patch coredump file in place instead of full copy;
  * Save and restore original pt_regs values in a separate file;
  * Wrap this logic in a separate class.

v2: 
https://lore.kernel.org/qemu-devel/[email protected]/
v1: 
https://lore.kernel.org/qemu-devel/[email protected]/

Andrey Drobyshev (4):
  scripts/qemugdb: mtree: Fix OverflowError in mtree with 128-bit
    addresses
  scripts/qemugdb: timers: Fix KeyError in 'qemu timers' command
  scripts/qemugdb: timers: Improve 'qemu timers' command readability
  scripts/qemugdb: coroutine: Add option for obtaining detailed trace in
    coredump

 scripts/qemugdb/coroutine.py | 257 +++++++++++++++++++++++++++++++++--
 scripts/qemugdb/mtree.py     |   2 +-
 scripts/qemugdb/timers.py    |  54 ++++++--
 3 files changed, 289 insertions(+), 24 deletions(-)

-- 
2.43.5


Reply via email to