29 lines
512 B
Python
29 lines
512 B
Python
class mybsPrinter:
|
|
def __init__(self, val):
|
|
self.val = val
|
|
def to_string(self):
|
|
s = ""
|
|
char_ptr = gdb.lookup_type("char").pointer()
|
|
char_ptr_ptr = char_ptr.pointer()
|
|
v = self.val['v']
|
|
for i in range(0, v['element_count']):
|
|
s += (
|
|
str(
|
|
(
|
|
v['data'].cast(char_ptr_ptr)
|
|
+
|
|
i
|
|
).dereference()
|
|
)
|
|
+
|
|
", "
|
|
)
|
|
return s
|
|
|
|
def mylookup(val):
|
|
if str(val.type) == 'mybs':
|
|
return mybsPrinter(val)
|
|
return None
|
|
|
|
gdb.pretty_printers.append(mylookup)
|