brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · b578faf Raw
43 lines · python
1import lldb2 3 4num_children_calls = []5 6 7class TestSyntheticProvider:8    def __init__(self, valobj, dict):9        target = valobj.GetTarget()10        self._type = valobj.GetType()11        data = lldb.SBData.CreateDataFromCString(lldb.eByteOrderLittle, 8, "S")12        name = "child" if "Not" in self._type.GetName() else "[0]"13        self._child = valobj.CreateValueFromData(14            name, data, target.GetBasicType(lldb.eBasicTypeChar)15        )16 17    def num_children(self):18        num_children_calls.append(self._type.GetName())19        return 120 21    def get_child_at_index(self, index):22        if index != 0:23            return None24        return self._child25 26    def get_child_index(self, name):27        if name == self._child.GetName():28            return 029        return None30 31 32def __lldb_init_module(debugger, dict):33    cat = debugger.CreateCategory("TestCategory")34    cat.AddTypeSynthetic(35        lldb.SBTypeNameSpecifier("Indexed"),36        lldb.SBTypeSynthetic.CreateWithClassName("formatter.TestSyntheticProvider"),37    )38    cat.AddTypeSynthetic(39        lldb.SBTypeNameSpecifier("NotIndexed"),40        lldb.SBTypeSynthetic.CreateWithClassName("formatter.TestSyntheticProvider"),41    )42    cat.SetEnabled(True)43