Commit 83051b0cbf

Silver <silver@silv.re>
2023-03-24 01:38:02
Update GDB pretty printers
1 parent 1190343
Changed files (1)
tools/zig_gdb_pretty_printers.py
@@ -2,22 +2,24 @@
 # put "source /path/to/zig_gdb_pretty_printers.py" in ~/.gdbinit to load it automatically.
 import gdb.printing
 
+
 class ZigPrettyPrinter(gdb.printing.PrettyPrinter):
     def __init__(self):
         super().__init__('Zig')
 
     def __call__(self, val):
         tag = val.type.tag
-        if(tag is None):
+        if tag is None:
             return None
-        if(tag == '[]u8'):
+        if tag == '[]u8':
             return StringPrinter(val)
-        if(tag.startswith('[]')):
+        if tag.startswith('[]'):
             return SlicePrinter(val)
-        if(tag.startswith('?')):
+        if tag.startswith('?'):
             return OptionalPrinter(val)
         return None
 
+
 class SlicePrinter:
     def __init__(self, val):
         self.val = val
@@ -35,6 +37,7 @@ class SlicePrinter:
     def display_hint(self):
         return 'array'
 
+
 class StringPrinter:
     def __init__(self, val):
         self.val = val
@@ -45,20 +48,16 @@ class StringPrinter:
     def display_hint(self):
         return 'string'
 
+
 class OptionalPrinter:
     def __init__(self, val):
         self.val = val
 
     def to_string(self):
-        if(self.val['maybe']):
-            return None # printed by children()
+        if self.val['some']:
+            return self.val['data']
         else:
             return 'null'
 
-    def children(self):
-        def it(val):
-            if(val['maybe']):
-                yield ('payload', val['val'])
-        return it(self.val)
 
 gdb.printing.register_pretty_printer(gdb.current_objfile(), ZigPrettyPrinter())