From 95e641cfc10d1a39ec604fba06462dc1385ff2eb Mon Sep 17 00:00:00 2001 From: Nikolay Igotti Date: Fri, 13 Jul 2018 15:07:22 +0300 Subject: [PATCH] Fix synthetic childern print --- llvmDebugInfoC/src/scripts/konan_lldb.py | 25 ++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/llvmDebugInfoC/src/scripts/konan_lldb.py b/llvmDebugInfoC/src/scripts/konan_lldb.py index 0bffe8dfb75..9f71348f853 100644 --- a/llvmDebugInfoC/src/scripts/konan_lldb.py +++ b/llvmDebugInfoC/src/scripts/konan_lldb.py @@ -103,6 +103,19 @@ class KonanHelperProvider(lldb.SBSyntheticValueProvider): 8: lambda address, _: "(void *){:#x}".format(address), # TODO: or 1? 9: lambda address, error: self.__read_memory(address, "= self._children_count: return None error = lldb.SBError() - value = self._read_value(index, error) - return value if error.Success() else None + type = self._read_type(index) + base = evaluate("(long){})".format(self._ptr)).unsigned + address = evaluate("(long)Konan_DebugGetFieldAddress({}, (int){})".format(self._ptr, index)).unsigned + child = self._valobj.CreateChildAtOffset(self._children[index], address - base, type) + child.SetSyntheticChildrenGenerated(True) + return child if error.Success() else None # TODO: fix cyclic structures stringification. def to_string(self): @@ -199,6 +219,7 @@ class KonanArraySyntheticProvider(KonanHelperProvider): super(KonanArraySyntheticProvider, self).__init__(valobj) if self._ptr is None: return + valobj.SetSyntheticChildrenGenerated(True) self.update() def update(self):