Make the GDB webkit.py script compatible with Python v3
authorzandobersek@gmail.com <zandobersek@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 15 Sep 2013 19:48:43 +0000 (19:48 +0000)
committerzandobersek@gmail.com <zandobersek@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 15 Sep 2013 19:48:43 +0000 (19:48 +0000)
https://bugs.webkit.org/show_bug.cgi?id=121395

Reviewed by Ryosuke Niwa.

GDB fails to load the printing helpers from the webkit.py script if Python v3 is used. To avoid that,
uses of xrange() in the script are replaced with range(), and the print statements are changed into
the print() function invocations.

* gdb/webkit.py:
(guess_string_length):
(ustring_to_string):
(lstring_to_string):
(WTFCStringPrinter.to_string):
(PrintPathToRootCommand.invoke):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@155824 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/gdb/webkit.py

index 72acbf5..5834a7a 100644 (file)
@@ -1,5 +1,23 @@
 2013-09-15  Zan Dobersek  <zdobersek@igalia.com>
 
+        Make the GDB webkit.py script compatible with Python v3
+        https://bugs.webkit.org/show_bug.cgi?id=121395
+
+        Reviewed by Ryosuke Niwa.
+
+        GDB fails to load the printing helpers from the webkit.py script if Python v3 is used. To avoid that,
+        uses of xrange() in the script are replaced with range(), and the print statements are changed into
+        the print() function invocations.
+
+        * gdb/webkit.py:
+        (guess_string_length):
+        (ustring_to_string):
+        (lstring_to_string):
+        (WTFCStringPrinter.to_string):
+        (PrintPathToRootCommand.invoke):
+
+2013-09-15  Zan Dobersek  <zdobersek@igalia.com>
+
         [webkitpy] perf profiler attaches to WKTR after the WebProcess was launched
         https://bugs.webkit.org/show_bug.cgi?id=119631
 
index 751c809..af4a3a9 100644 (file)
@@ -46,7 +46,7 @@ def guess_string_length(ptr):
     Returns a tuple of (length, an error message).
     """
     # Try to guess at the length.
-    for i in xrange(0, 2048):
+    for i in range(0, 2048):
         try:
             if int((ptr + i).dereference()) == 0:
                 return i, ''
@@ -66,7 +66,7 @@ def ustring_to_string(ptr, length=None):
         length, error_message = guess_string_length(ptr)
     else:
         length = int(length)
-    char_vals = [int((ptr + i).dereference()) for i in xrange(length)]
+    char_vals = [int((ptr + i).dereference()) for i in range(length)]
     string = struct.pack('H' * length, *char_vals).decode('utf-16', 'replace').encode('utf-8')
     return string + error_message
 
@@ -81,7 +81,7 @@ def lstring_to_string(ptr, length=None):
         length, error_message = guess_string_length(ptr)
     else:
         length = int(length)
-    string = ''.join([chr((ptr + i).dereference()) for i in xrange(length)])
+    string = ''.join([chr((ptr + i).dereference()) for i in range(length)])
     return string + error_message
 
 
@@ -118,7 +118,7 @@ class WTFCStringPrinter(StringPrinter):
         # The CString holds a buffer, which is a refptr to a WTF::CStringBuffer.
         data = self.val['m_buffer']['m_ptr']['m_data'].cast(gdb.lookup_type('char').pointer())
         length = self.val['m_buffer']['m_ptr']['m_length']
-        return ''.join([chr((data + i).dereference()) for i in xrange(length)])
+        return ''.join([chr((data + i).dereference()) for i in range(length)])
 
 
 class WTFStringImplPrinter(StringPrinter):
@@ -320,7 +320,7 @@ class PrintPathToRootCommand(gdb.Command):
         try:
             val = gdb.Frame.read_var(frame, arg)
         except:
-            print "No such variable, or invalid type"
+            print("No such variable, or invalid type")
             return
 
         target_type = str(val.type.target().strip_typedefs())
@@ -334,10 +334,10 @@ class PrintPathToRootCommand(gdb.Command):
             padding = ''
             while len(stack) > 0:
                 pair = stack.pop()
-                print padding, pair[1], pair[0]
+                print(padding, pair[1], pair[0])
                 padding = padding + '  '
         else:
-            print 'Sorry: I don\'t know how to deal with %s yet.' % target_type
+            print('Sorry: I don\'t know how to deal with %s yet.' % target_type)
 
 
 PrintPathToRootCommand()