[Lldb-commits] [PATCH] D137983: [lldb] Disable looking at pointee types to find synthetic value for non-ObjC

Arthur Eubanks via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Nov 15 16:47:31 PST 2022


aeubanks added inline comments.


================
Comment at: lldb/source/Core/ValueObject.cpp:2676-2677
     if (!m_deref_valobj) {
-      if (HasSyntheticValue()) {
+      // FIXME: C++ stdlib formatters break with incomplete types (e.g.
+      // `std::vector<int> &`). Remove ObjC restriction once that's resolved.
+      if (Language::LanguageIsObjC(GetPreferredDisplayLanguage()) &&
----------------
dblaikie wrote:
> Maybe worth filing a bug and referencing it here?
> 
> Is this limitation still necessary if the incomplete type has template parameter DIEs? (I guess probably yes, because it'll be missing member descriptions, etc)
> 
> & does this path get hit if the type is declared in one CU but defined in another? (& does the inf recurse/crash loop still get hit in that case, without this patch?)
> Maybe worth filing a bug and referencing it here?
Filed https://github.com/llvm/llvm-project/issues/59012, added here

> Is this limitation still necessary if the incomplete type has template parameter DIEs? (I guess probably yes, because it'll be missing member descriptions, etc)
yes (I incorrectly mentioned in person that this works with `-gsimple-template-names`, it actually still infinite recurses)

> & does this path get hit if the type is declared in one CU but defined in another? (& does the inf recurse/crash loop still get hit in that case, without this patch?)
if the declaration is in a shared library and the main binary has the definition, we hit this
if we have two CUs, one with a declaration, one with a definition, but both linked into the same binary, we don't hit the issue
AFAICT lldb restricts looking up debug info to the binary/shared library, but otherwise prefers definitions over declarations?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D137983/new/

https://reviews.llvm.org/D137983



More information about the lldb-commits mailing list