Meta: Add GDB pretty printer for AK::SinglyLinkedList

This commit is contained in:
Brian Gianforcaro 2021-05-21 02:19:46 -07:00 committed by Andreas Kling
parent 0fbc5893bf
commit bd1bdbe91b
Notes: sideshowbarker 2024-07-18 17:38:03 +09:00

View file

@ -159,6 +159,24 @@ class AKHashMapPrettyPrinter:
return elements
class AKSinglyLinkedList:
def __init__(self, val):
self.val = val
def to_string(self):
return self.val.type.name
def children(self):
elements = []
node = self.val["m_head"]
while node != 0:
elements.append(node["value"])
node = node["next"]
return [(f"[{i}]", elements[i]) for i in range(len(elements))]
class AKInlineLinkedList:
def __init__(self, val):
self.val = val
@ -218,6 +236,8 @@ class SerenityPrettyPrinterLocator(gdb.printing.PrettyPrinter):
return AKOwnPtr(val)
elif klass == 'AK::NonnullRefPtr':
return AKRefPtr(val)
elif klass == 'AK::SinglyLinkedList':
return AKSinglyLinkedList(val)
elif klass == 'AK::String':
return AKString(val)
elif klass == 'AK::StringView':