From 090f898eae55c67f87ae2e1a7fcd39584f8f7455 Mon Sep 17 00:00:00 2001 From: Cyrill Gorcunov Date: Wed, 31 Mar 2010 23:57:12 +0400 Subject: [PATCH] kvm: Introduce kvm__dump_mem helper Signed-off-by: Cyrill Gorcunov --- include/kvm/kvm.h | 1 + kvm.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/include/kvm/kvm.h b/include/kvm/kvm.h index f8101f9..dd5a3bb 100644 --- a/include/kvm/kvm.h +++ b/include/kvm/kvm.h @@ -44,6 +44,7 @@ bool kvm__emulate_io(struct kvm *self, uint16_t port, void *data, int direction, */ void kvm__show_code(struct kvm *self); void kvm__show_registers(struct kvm *self); +void kvm__dump_mem(struct kvm *self, unsigned long addr, unsigned long size); extern const char *kvm_exit_reasons[]; diff --git a/kvm.c b/kvm.c index 142b126..9d138b4 100644 --- a/kvm.c +++ b/kvm.c @@ -535,3 +535,22 @@ void kvm__show_code(struct kvm *self) printf("\n"); } + +void kvm__dump_mem(struct kvm *self, unsigned long addr, unsigned long size) +{ + unsigned char *p; + unsigned long n; + + size &= ~7; /* mod 8 */ + if (!size) + return; + + p = (unsigned char *)guest_flat_to_host(self, addr); + + printf("Guest memory dump:\n"); + + for (n = 0; n < size; n+=8) + printf("0x%08lx: %02x%02x%02x%02x %02x%02x%02x%02x\n", + addr + n, p[n + 0], p[n + 1], p[n + 2], p[n + 3], + p[n + 4], p[n + 5], p[n + 6], p[n + 7]); +}