Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorZoltan Varga <vargaz@gmail.com>2009-04-15 00:07:00 +0400
committerZoltan Varga <vargaz@gmail.com>2009-04-15 00:07:00 +0400
commitdcd5d970fa88a42bafd8205afbe443d25adc871b (patch)
treed11437d22da8835c5efb6be32fe0a6ec9ac28926 /data
parent8f31ab70c48f604f9ad0f85f45375bc7a24bd5d2 (diff)
2009-04-14 Zoltan Varga <vargaz@gmail.com>
* mono-gdb.py (MonoClassPrinter.to_string): Add a MonoClass* pretty printer. svn path=/trunk/mono/; revision=131695
Diffstat (limited to 'data')
-rw-r--r--data/gdb/ChangeLog5
-rw-r--r--data/gdb/mono-gdb.py17
2 files changed, 22 insertions, 0 deletions
diff --git a/data/gdb/ChangeLog b/data/gdb/ChangeLog
index f88aeabf9c5..58050296d29 100644
--- a/data/gdb/ChangeLog
+++ b/data/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2009-04-14 Zoltan Varga <vargaz@gmail.com>
+
+ * mono-gdb.py (MonoClassPrinter.to_string): Add a MonoClass* pretty
+ printer.
+
2009-04-12 Zoltan Varga <vargaz@gmail.com>
* mono-gdb.py (MonoMethodPrinter.to_string): Add a MonoMethod* pretty
diff --git a/data/gdb/mono-gdb.py b/data/gdb/mono-gdb.py
index 8325b8a4f9f..bb40cba9849 100644
--- a/data/gdb/mono-gdb.py
+++ b/data/gdb/mono-gdb.py
@@ -157,6 +157,21 @@ class MonoMethodPrinter:
# This returns more info but requires calling into the inferior
#return "\"%s\"" % (gdb.parse_and_eval ("mono_method_full_name (%s, 1)" % (str (int (self.val.cast (gdb.lookup_type ("guint64")))))).string ())
+class MonoClassPrinter:
+ "Print a MonoClass structure"
+
+ def __init__(self, val):
+ self.val = val
+
+ def to_string(self):
+ if int(self.val.cast (gdb.lookup_type ("guint64"))) == 0:
+ return "0x0"
+ klass = self.val.dereference ()
+ class_name = stringify_class_name (klass ["name_space"].string (), klass ["name"].string ())
+ return "\"%s\"" % (class_name)
+ # This returns more info but requires calling into the inferior
+ #return "\"%s\"" % (gdb.parse_and_eval ("mono_type_full_name (&((MonoClass*)%s)->byval_arg)" % (str (int ((self.val).cast (gdb.lookup_type ("guint64")))))))
+
def lookup_pretty_printer(val):
t = str (val.type)
if t == "object":
@@ -167,6 +182,8 @@ def lookup_pretty_printer(val):
return StringPrinter (val)
if t == "MonoMethod *":
return MonoMethodPrinter (val)
+ if t == "MonoClass *":
+ return MonoClassPrinter (val)
return None
def register_csharp_printers(obj):