From: Borislav Petkov Date: Sun, 8 Feb 2015 12:14:38 +0000 (+0100) Subject: memsave: Improve and disambiguate error message X-Git-Tag: TizenStudio_2.0_p2.3.2~208^2~318^2~40 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0dc9daf0be2a4ebb3c6529d1c458d8ccf26cd412;p=sdk%2Femulator%2Fqemu.git memsave: Improve and disambiguate error message When requesting a size which cannot be read, the error message shows a different address which is misleading to the user and it looks like something's wrong with the address parsing. This is because the input @addr variable is incremented in the memory dumping loop: (qemu) memsave 0xffffffff8418069c 0xb00000 mem Invalid addr 0xffffffff849ffe9c specified Fix that by saving the original address and size and use them in the error message: (qemu) memsave 0xffffffff8418069c 0xb00000 mem Invalid addr 0xffffffff8418069c/size 11534336 specified Signed-off-by: Borislav Petkov Signed-off-by: Michael Tokarev --- diff --git a/cpus.c b/cpus.c index 0fac143..1ce90a1 100644 --- a/cpus.c +++ b/cpus.c @@ -1474,6 +1474,7 @@ void qmp_memsave(int64_t addr, int64_t size, const char *filename, uint32_t l; CPUState *cpu; uint8_t buf[1024]; + int64_t orig_addr = addr, orig_size = size; if (!has_cpu) { cpu_index = 0; @@ -1497,7 +1498,8 @@ void qmp_memsave(int64_t addr, int64_t size, const char *filename, if (l > size) l = size; if (cpu_memory_rw_debug(cpu, addr, buf, l, 0) != 0) { - error_setg(errp, "Invalid addr 0x%016" PRIx64 "specified", addr); + error_setg(errp, "Invalid addr 0x%016" PRIx64 "/size %" PRId64 + " specified", orig_addr, orig_size); goto exit; } if (fwrite(buf, 1, l, f) != l) {