From 8cbd16e9c7127c7479e9f1969e294df3f3a7e69f Mon Sep 17 00:00:00 2001 From: Vladimir Kargov Date: Thu, 7 Jan 2016 15:37:14 -0800 Subject: [PATCH] Fix the format statements in mono-gdb. --- data/gdb-pre7.0/mono-gdb.py | 28 ++++++++++++++-------------- data/gdb/mono-gdb.py | 34 +++++++++++++++++----------------- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/data/gdb-pre7.0/mono-gdb.py b/data/gdb-pre7.0/mono-gdb.py index 1c013e38611..eda0ba36da7 100644 --- a/data/gdb-pre7.0/mono-gdb.py +++ b/data/gdb-pre7.0/mono-gdb.py @@ -53,7 +53,7 @@ def stringify_class_name(ns, name): if ns == "": return name else: - return "%s.%s".format (ns, name) + return "{}.{}".format (ns, name) class ArrayPrinter: "Print a C# array" @@ -66,7 +66,7 @@ class ArrayPrinter: def to_string(self): obj = self.val.cast (gdb.lookup_type ("MonoArray").pointer ()).dereference () length = obj ['max_length'] - return "%s [%d]".format (stringify_class_name (self.class_ns, self.class_name [0:len (self.class_name) - 2]), int (length)) + return "{} [{}]".format (stringify_class_name (self.class_ns, self.class_name [0:len (self.class_name) - 2]), int (length)) class ObjectPrinter: "Print a C# object" @@ -96,7 +96,7 @@ class ObjectPrinter: return (field.name, self.obj [field.name]) except: # Superclass - return (field.name, self.obj.cast (gdb.lookup_type ("%s".format (field.name)))) + return (field.name, self.obj.cast (gdb.lookup_type ("{}".format (field.name)))) def children(self): # FIXME: It would be easier if gdb.Value would support iteration itself @@ -109,7 +109,7 @@ class ObjectPrinter: class_name = obj ['vtable'].dereference ()['klass'].dereference ()['name'].string () if class_name [-2:len(class_name)] == "[]": return {}.__iter__ () - gdb_type = gdb.lookup_type ("struct %s_%s".format (class_ns.replace (".", "_"), class_name)) + gdb_type = gdb.lookup_type ("struct {}_{}".format (class_ns.replace (".", "_"), class_name)) return self._iterator(obj.cast (gdb_type)) except: print (sys.exc_info ()[0]) @@ -129,12 +129,12 @@ class ObjectPrinter: return ArrayPrinter (self.val,class_ns,class_name).to_string () if class_ns != "": try: - gdb_type = gdb.lookup_type ("struct %s.%s".format (class_ns, class_name)) + gdb_type = gdb.lookup_type ("struct {}.{}".format (class_ns, class_name)) except: # Maybe there is no debug info for that type - return "%s.%s".format (class_ns, class_name) + return "{}.{}".format (class_ns, class_name) #return obj.cast (gdb_type) - return "%s.%s".format (class_ns, class_name) + return "{}.{}".format (class_ns, class_name) return class_name except: print (sys.exc_info ()[0]) @@ -154,9 +154,9 @@ class MonoMethodPrinter: val = self.val.dereference () klass = val ["klass"].dereference () class_name = stringify_class_name (klass ["name_space"].string (), klass ["name"].string ()) - return "\"%s:%s ()\"".format (class_name, val ["name"].string ()) + return "\"{}:{} ()\"".format (class_name, val ["name"].string ()) # This returns more info but requires calling into the inferior - #return "\"%s\"".format (gdb.parse_and_eval ("mono_method_full_name (%s, 1)".format (str (int (self.val.cast (gdb.lookup_type ("guint64")))))).string ()) + #return "\"{}\"".format (gdb.parse_and_eval ("mono_method_full_name ({}, 1)".format (str (int (self.val.cast (gdb.lookup_type ("guint64")))))).string ()) class MonoClassPrinter: "Print a MonoClass structure" @@ -169,9 +169,9 @@ class MonoClassPrinter: return "0x0" klass = self.val.dereference () class_name = stringify_class_name (klass ["name_space"].string (), klass ["name"].string ()) - return "\"%s\"".format (class_name) + return "\"{}\"".format (class_name) # This returns more info but requires calling into the inferior - #return "\"%s\"".format (gdb.parse_and_eval ("mono_type_full_name (&((MonoClass*)%s)->byval_arg)".format (str (int ((self.val).cast (gdb.lookup_type ("guint64"))))))) + #return "\"{}\"".format (gdb.parse_and_eval ("mono_type_full_name (&((MonoClass*){})->byval_arg)".format (str (int ((self.val).cast (gdb.lookup_type ("guint64"))))))) def lookup_pretty_printer(val): t = str (val.type) @@ -217,9 +217,9 @@ class MonoSupport(object): new_size = os.stat ("xdb.s").st_size if new_size > self.s_size: sofile = "xdb.so" - gdb.execute ("shell as -o xdb.o xdb.s && ld -shared -o %s xdb.o".format (sofile)) + gdb.execute ("shell as -o xdb.o xdb.s && ld -shared -o {} xdb.o".format (sofile)) # FIXME: This prints messages which couldn't be turned off - gdb.execute ("add-symbol-file %s 0".format (sofile)) + gdb.execute ("add-symbol-file {} 0".format (sofile)) self.s_size = new_size class RunHook (gdb.Command): @@ -245,4 +245,4 @@ exec_file = gdb.current_objfile ().filename if os.stat (exec_file).st_size != os.lstat (exec_file).st_size: exec_file = os.readlink (exec_file) exec_dir = os.path.dirname (exec_file) -gdb.execute ("source %s/%s-gdbinit".format (exec_dir, os.path.basename (exec_file))) +gdb.execute ("source {}/{}-gdbinit".format (exec_dir, os.path.basename (exec_file))) diff --git a/data/gdb/mono-gdb.py b/data/gdb/mono-gdb.py index f4dcfe72c09..7d9eab5cb70 100644 --- a/data/gdb/mono-gdb.py +++ b/data/gdb/mono-gdb.py @@ -48,7 +48,7 @@ def stringify_class_name(ns, name): if ns == "": return name else: - return "%s.%s".format (ns, name) + return "{}.{}".format (ns, name) class ArrayPrinter: "Print a C# array" @@ -61,7 +61,7 @@ class ArrayPrinter: def to_string(self): obj = self.val.cast (gdb.lookup_type ("MonoArray").pointer ()).dereference () length = obj ['max_length'] - return "%s [%d]".format (stringify_class_name (self.class_ns, self.class_name [0:len(self.class_name) - 2]), int(length)) + return "{} [{}]".format (stringify_class_name (self.class_ns, self.class_name [0:len(self.class_name) - 2]), int(length)) class ObjectPrinter: "Print a C# object" @@ -91,7 +91,7 @@ class ObjectPrinter: return (field.name, self.obj [field.name]) except: # Superclass - return (field.name, self.obj.cast (gdb.lookup_type ("%s".format (field.name)))) + return (field.name, self.obj.cast (gdb.lookup_type ("{}".format (field.name)))) def children(self): # FIXME: It would be easier if gdb.Value would support iteration itself @@ -105,7 +105,7 @@ class ObjectPrinter: if class_name [-2:len(class_name)] == "[]": return {}.__iter__ () try: - gdb_type = gdb.lookup_type ("struct %s_%s".format (class_ns.replace (".", "_"), class_name)) + gdb_type = gdb.lookup_type ("struct {}_{}".format (class_ns.replace (".", "_"), class_name)) return self._iterator(obj.cast (gdb_type)) except: return {}.__iter__ () @@ -127,12 +127,12 @@ class ObjectPrinter: return ArrayPrinter (self.val,class_ns,class_name).to_string () if class_ns != "": try: - gdb_type = gdb.lookup_type ("struct %s.%s".format (class_ns, class_name)) + gdb_type = gdb.lookup_type ("struct {}.{}".format (class_ns, class_name)) except: # Maybe there is no debug info for that type - return "%s.%s".format (class_ns, class_name) + return "{}.{}".format (class_ns, class_name) #return obj.cast (gdb_type) - return "%s.%s".format (class_ns, class_name) + return "{}.{}".format (class_ns, class_name) return class_name except: print (sys.exc_info ()[0]) @@ -152,9 +152,9 @@ class MonoMethodPrinter: val = self.val.dereference () klass = val ["klass"].dereference () class_name = stringify_class_name (klass ["name_space"].string (), klass ["name"].string ()) - return "\"%s:%s ()\"".format (class_name, val ["name"].string ()) + return "\"{}:{} ()\"".format (class_name, val ["name"].string ()) # This returns more info but requires calling into the inferior - #return "\"%s\"".format (gdb.parse_and_eval ("mono_method_full_name (%s, 1)".format (str (int (self.val.cast (gdb.lookup_type ("guint64")))))).string ()) + #return "\"{}\"".format (gdb.parse_and_eval ("mono_method_full_name ({}, 1)".format (str (int (self.val.cast (gdb.lookup_type ("guint64")))))).string ()) class MonoClassPrinter: "Print a MonoClass structure" @@ -168,13 +168,13 @@ class MonoClassPrinter: klass = self.val.dereference () class_name = stringify_class_name (klass ["name_space"].string (), klass ["name"].string ()) if klass ["generic_class"].cast (gdb.lookup_type ("guint64")) != 0: - class_name = "%s<%s>".format (class_name, str (klass ["generic_class"]["context"]["class_inst"])) + class_name = "{}<{}>".format (class_name, str (klass ["generic_class"]["context"]["class_inst"])) if add_quotes: - return "\"%s\"".format (class_name) + return "\"{}\"".format (class_name) else: return class_name # This returns more info but requires calling into the inferior - #return "\"%s\"".format (gdb.parse_and_eval ("mono_type_full_name (&((MonoClass*)%s)->byval_arg)".format (str (int ((self.val).cast (gdb.lookup_type ("guint64"))))))) + #return "\"{}\"".format (gdb.parse_and_eval ("mono_type_full_name (&((MonoClass*){})->byval_arg)".format (str (int ((self.val).cast (gdb.lookup_type ("guint64"))))))) def to_string(self): try: @@ -222,7 +222,7 @@ class MonoGenericClassPrinter: method_inst_str = "" if int(method_inst.cast (gdb.lookup_type ("guint64"))) != 0: method_inst_str = str(method_inst) - return "%s, [%s], [%s]>".format (container_str, class_inst_str, method_inst_str) + return "{}, [{}], [{}]>".format (container_str, class_inst_str, method_inst_str) def to_string(self): try: @@ -252,9 +252,9 @@ class MonoTypePrinter: info = str(t ["data"]["generic_class"]) if info != "": - return "{%s, %s}".format (kind, info) + return "{{}, {}}".format (kind, info) else: - return "{%s}".format (kind) + return "{{}}".format (kind) except: #print (sys.exc_info ()[0]) #print (sys.exc_info ()[1]) @@ -283,7 +283,7 @@ class MonoMethodRgctxPrinter: if i > 0: inst_str = inst_str + ", " inst_str = inst_str + type_printer.to_string () - return "MRGCTX[%s, [%s]]".format (klass_printer.to_string(), inst_str) + return "MRGCTX[{}, [{}]]".format (klass_printer.to_string(), inst_str) class MonoVTablePrinter: "Print a MonoVTable structure" @@ -298,7 +298,7 @@ class MonoVTablePrinter: klass = vtable ["klass"] klass_printer = MonoClassPrinter (klass) - return "vtable(%s)".format (klass_printer.to_string ()) + return "vtable({})".format (klass_printer.to_string ()) def lookup_pretty_printer(val): t = str (val.type) -- 2.25.1