diff options
author | Zoltan Varga <vargaz@gmail.com> | 2011-03-15 01:09:06 +0300 |
---|---|---|
committer | Zoltan Varga <vargaz@gmail.com> | 2011-03-16 16:43:25 +0300 |
commit | bf832a6c6416e03758dc8c19102d3e0fe7312b25 (patch) | |
tree | 806511741f134866a4c7a8ee9ac83842466ddae4 /data | |
parent | 713219d4ab15caedf59ca169feddef0117b4e718 (diff) |
Pretty print MonoVTable in xdebug.
Diffstat (limited to 'data')
-rw-r--r-- | data/gdb/mono-gdb.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/data/gdb/mono-gdb.py b/data/gdb/mono-gdb.py index b53f197cad5..793d83464c7 100644 --- a/data/gdb/mono-gdb.py +++ b/data/gdb/mono-gdb.py @@ -280,6 +280,19 @@ class MonoMethodRgctxPrinter: inst_str = inst_str + type_printer.to_string () return "MRGCTX[%s, [%s]]" % (klass_printer.to_string(), inst_str) +class MonoVTablePrinter: + "Print a MonoVTable structure" + + def __init__(self, val): + self.val = val + + def to_string(self): + vtable = self.val.dereference () + klass = vtable ["klass"] + klass_printer = MonoClassPrinter (klass) + + return "vtable(%s)" % (klass_printer.to_string ()) + def lookup_pretty_printer(val): t = str (val.type) if t == "object": @@ -302,6 +315,8 @@ def lookup_pretty_printer(val): return MonoGenericClassPrinter (val) if t == "MonoMethodRuntimeGenericContext *": return MonoMethodRgctxPrinter (val) + if t == "MonoVTable *": + return MonoVTablePrinter (val) return None def register_csharp_printers(obj): |