| 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" |