| import lldb |
| |
| |
| def foo_SummaryProvider(valobj, dict): |
| a = valobj.GetChildMemberWithName("a") |
| a_ptr = valobj.GetChildMemberWithName("a_ptr") |
| bar = valobj.GetChildMemberWithName("b") |
| i = bar.GetChildMemberWithName("i") |
| i_ptr = bar.GetChildMemberWithName("i_ptr") |
| b_ref = bar.GetChildMemberWithName("b_ref") |
| b_ref_ptr = b_ref.AddressOf() |
| b_ref = b_ref_ptr.Dereference() |
| h = b_ref.GetChildMemberWithName("h") |
| k = b_ref.GetChildMemberWithName("k") |
| return ( |
| "a = " |
| + str(a.GetValueAsUnsigned(0)) |
| + ", a_ptr = " |
| + str(a_ptr.GetValueAsUnsigned(0)) |
| + " -> " |
| + str(a_ptr.Dereference().GetValueAsUnsigned(0)) |
| + ", i = " |
| + str(i.GetValueAsUnsigned(0)) |
| + ", i_ptr = " |
| + str(i_ptr.GetValueAsUnsigned(0)) |
| + " -> " |
| + str(i_ptr.Dereference().GetValueAsUnsigned(0)) |
| + ", b_ref = " |
| + str(b_ref.GetValueAsUnsigned(0)) |
| + ", h = " |
| + str(h.GetValueAsUnsigned(0)) |
| + " , k = " |
| + str(k.GetValueAsUnsigned(0)) |
| ) |
| |
| |
| def foo_SummaryProvider3(valobj, dict, options): |
| if not isinstance(options, lldb.SBTypeSummaryOptions): |
| raise Exception() |
| return foo_SummaryProvider(valobj, dict) + ", WITH_OPTS" |