Commit: b5fedf9414a578d12c01f3341d8ba0fff84db03a
Parent: c8ca3b0f2b3631c27b2bc68c286f90f3f9b280a6
Author: Randy Palamar
Date: Wed, 28 May 2025 05:29:22 -0600
gdb: add str8, Stream, and Arena pretty printers
Diffstat:
1 file changed, 22 insertions(+), 4 deletions(-)
diff --git a/.config/gdb/plugins.py b/.config/gdb/plugins.py
@@ -1,22 +1,40 @@
import gdb.printing
+class Arena_printer(gdb.ValuePrinter):
+ def __init__(self, val):
+ self.val = val
+
+ def to_string(self):
+ beg = self.val["beg"]
+ end = self.val["end"]
+ return '{capacity: %d}' % (end - beg)
-class s8_printer(gdb.ValuePrinter):
+class Stream_printer(gdb.ValuePrinter):
def __init__(self, val):
self.val = val
def to_string(self):
- len = self.val["len"]
+ len = self.val["widx"]
str = self.val["data"].string(length=min(max(len, 0), 64))
return '{len = %d, data = "%s"}' % (len, str)
+class str8_printer(gdb.ValuePrinter):
+ def __init__(self, val):
+ self.val = val
+
+ def to_string(self):
+ len = self.val["len"]
+ str = self.val["data"].string(length=min(max(len, 0), 64))
+ return '{len = %d, data = "%s"}' % (len, str)
def build_pretty_printer():
pp = gdb.printing.RegexpCollectionPrettyPrinter("rnpnr")
- pp.add_printer("s8", "s8", s8_printer)
+ pp.add_printer("s8", "s8", str8_printer)
+ pp.add_printer("str8", "str8", str8_printer)
+ pp.add_printer("Arena", "Arena", Arena_printer)
+ pp.add_printer("Stream", "Stream", Stream_printer)
return pp
-
gdb.printing.register_pretty_printer(
gdb.current_objfile(), build_pretty_printer()
)