From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59754) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aJkNC-0008OI-Gx for qemu-devel@nongnu.org; Thu, 14 Jan 2016 11:03:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aJkN4-0006Fq-Nm for qemu-devel@nongnu.org; Thu, 14 Jan 2016 11:03:42 -0500 Received: from mx1.redhat.com ([209.132.183.28]:59649) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aJkN4-0006Fk-Fg for qemu-devel@nongnu.org; Thu, 14 Jan 2016 11:03:34 -0500 References: <1452761307-57200-1-git-send-email-frankja@linux.vnet.ibm.com> <1452761307-57200-4-git-send-email-frankja@linux.vnet.ibm.com> From: Laszlo Ersek Message-ID: <5697C6D3.40504@redhat.com> Date: Thu, 14 Jan 2016 17:03:31 +0100 MIME-Version: 1.0 In-Reply-To: <1452761307-57200-4-git-send-email-frankja@linux.vnet.ibm.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC 3/5] scripts/dump-guest-memory.py: Improve python 3 compatibility List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Janosch Frank , qemu-devel@nongnu.org Cc: pbonzini@redhat.com On 01/14/16 09:48, Janosch Frank wrote: > This commit does not make the script python 3 compatible, it is a > preparation that fixes the easy and common incompatibilities. > > Print is a function in python 3 and therefore needs braces around its > arguments. > > Range does not cast a gdb.Value object to int in python 3, we have to > do it ourselves. > > Signed-off-by: Janosch Frank > --- > scripts/dump-guest-memory.py | 22 +++++++++++----------- > 1 file changed, 11 insertions(+), 11 deletions(-) > > diff --git a/scripts/dump-guest-memory.py b/scripts/dump-guest-memory.py > index 76a6ecb..fe93135 100644 > --- a/scripts/dump-guest-memory.py > +++ b/scripts/dump-guest-memory.py > @@ -98,15 +98,15 @@ def memory_region_get_ram_ptr(mr): > > def get_guest_phys_blocks(): > guest_phys_blocks = [] > - print "guest RAM blocks:" > - print ("target_start target_end host_addr message " > - "count") > - print ("---------------- ---------------- ---------------- ------- " > - "-----") > + print("guest RAM blocks:") > + print("target_start target_end host_addr message " > + "count") > + print("---------------- ---------------- ---------------- ------- " > + "-----") > > current_map_p = gdb.parse_and_eval("address_space_memory.current_map") > current_map = current_map_p.dereference() > - for cur in range(current_map["nr"]): > + for cur in range(int(current_map["nr"])): FlatView.nr has type "unsigned" in C -- is this int cast safe in python? (I don't expect a >= 2G value in "nr", but still.) Thanks Laszlo > flat_range = (current_map["ranges"] + cur).dereference() > mr = flat_range["mr"].dereference() > > @@ -149,9 +149,9 @@ def get_guest_phys_blocks(): > predecessor["target_end"] = target_end > message = "joined" > > - print ("%016x %016x %016x %-7s %5u" % > - (target_start, target_end, host_addr.cast(UINTPTR_T), > - message, len(guest_phys_blocks))) > + print("%016x %016x %016x %-7s %5u" % > + (target_start, target_end, host_addr.cast(UINTPTR_T), > + message, len(guest_phys_blocks))) > > return guest_phys_blocks > > @@ -311,8 +311,8 @@ shape and this command should mostly work.""" > for block in self.guest_phys_blocks: > cur = block["host_addr"] > left = block["target_end"] - block["target_start"] > - print ("dumping range at %016x for length %016x" % > - (cur.cast(UINTPTR_T), left)) > + print("dumping range at %016x for length %016x" % > + (cur.cast(UINTPTR_T), left)) > while (left > 0): > chunk_size = min(TARGET_PAGE_SIZE, left) > chunk = qemu_core.read_memory(cur, chunk_size) >