brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 6bcaf4a Raw
41 lines · python
1import lldb2 3 4def foo_SummaryProvider(valobj, dict):5    a = valobj.GetChildMemberWithName("a")6    a_ptr = valobj.GetChildMemberWithName("a_ptr")7    bar = valobj.GetChildMemberWithName("b")8    i = bar.GetChildMemberWithName("i")9    i_ptr = bar.GetChildMemberWithName("i_ptr")10    b_ref = bar.GetChildMemberWithName("b_ref")11    b_ref_ptr = b_ref.AddressOf()12    b_ref = b_ref_ptr.Dereference()13    h = b_ref.GetChildMemberWithName("h")14    k = b_ref.GetChildMemberWithName("k")15    return (16        "a = "17        + str(a.GetValueAsUnsigned(0))18        + ", a_ptr = "19        + str(a_ptr.GetValueAsUnsigned(0))20        + " -> "21        + str(a_ptr.Dereference().GetValueAsUnsigned(0))22        + ", i = "23        + str(i.GetValueAsUnsigned(0))24        + ", i_ptr = "25        + str(i_ptr.GetValueAsUnsigned(0))26        + " -> "27        + str(i_ptr.Dereference().GetValueAsUnsigned(0))28        + ", b_ref = "29        + str(b_ref.GetValueAsUnsigned(0))30        + ", h = "31        + str(h.GetValueAsUnsigned(0))32        + " , k = "33        + str(k.GetValueAsUnsigned(0))34    )35 36 37def foo_SummaryProvider3(valobj, dict, options):38    if not isinstance(options, lldb.SBTypeSummaryOptions):39        raise Exception()40    return foo_SummaryProvider(valobj, dict) + ", WITH_OPTS"41