zequanwu added inline comments.
================ Comment at: lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp:634-659 + name_components = name_components.drop_back(); + if (!name_components.empty()) { + // Render the current list of scope nodes as a fully qualified name, and + // look it up in the debug info as a type name. If we find something, + // this is a type (which may itself be prefixed by a namespace). If we + // don't, this is a list of namespaces. + std::string qname = RenderScopeList(name_components); ---------------- labath wrote: > I know you didn't write this, but I still have to express my surprise at the > existence of this code. My don't have anything like that -- using demangled > names to look up things -- in the DWARF plugin. There, you can find the > containing context by just going "up" in the DIE tree. I don't know if that > is possible in PDB, but the current implementation seems fairly fragile, and > I suspect it could be broken if the user overrides a mangled name of a symbol > (`void f() asm("my_linkage_name");`). > Are you sure it's not possible to do this in some other way? For namespace, I don't see any symbol record for it. All members of namespace, functions or variables, just have namespace string as a prefix for their names, like `N1::N2::func`. @rnk Do you know any other ways to get the namespace string of a symbol rather than using mangled names? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D133243/new/ https://reviews.llvm.org/D133243 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits