9 from findlib
import findlib
18 olddem = gdb.parameter(
'print asm-demangle')
22 gdb.execute (
'set print asm-demangle on')
23 out = gdb.execute (
'x/x 0x%x' %
int(vt), to_string =
True)
29 gdb.execute (
'set print asm-demangle off')
30 i = out.find (
'<vtable for ')
35 jj = out.rfind (
'+', i, j)
38 return '<' + out[i:j] +
'>'
44 if self.
val == 0:
return ''
45 vpptype = gdb.lookup_type(
'void').pointer().pointer()
46 vt = self.
val.cast(vpptype).dereference()
50 findlib (
int(vt),
True)
63 "Look-up and return a pretty-printer that can print val."
69 if type.code == gdb.TYPE_CODE_REF:
73 type = type.unqualified ().strip_typedefs ()
75 if type.code != gdb.TYPE_CODE_PTR:
79 if type.target().code == gdb.TYPE_CODE_STRUCT:
86 gdb.pretty_printers.insert (0, lookup_vpointer_function)