blob: 55e5eb269ae79ff39471094f2c21eeebfc254fcb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import gdb
class EnumPrinter(object):
def __init__(self, val):
# TODO: Support NonZero optimised enums
self.tag = int(val['TAG'])
self.var_data = val['DATA']['var_%i' % (self.tag,)]
def to_string(self):
return "var %i" % (self.tag,)
def children(self):
for f in self.var_data.type.fields():
yield (f.name, self.var_data[f.name],)
return
def register():
pp = gdb.printing.RegexpCollectionPrettyPrinter("mrustc")
pp.add_printer('enum', '^e__', EnumPrinter)
return pp
gdb.printing.register_pretty_printer( gdb.current_objfile(), register(), replace=True )
|