[Lldb-commits] [lldb] r349175 - [NativePDB] Fix local-variables.cpp test.
Zachary Turner via lldb-commits
lldb-commits at lists.llvm.org
Fri Dec 14 11:18:16 PST 2018
Ahh, so I misinterpreted what you originally said. There is one Clang AST *per
SymboFile*. In PDB land, compile units are often called "modules" so it's
easy to get confused. So in my original response, what I actually meant
was that there's no notion of a per compile-unit AST. But that also had
nothing to do with your question, which was about LLDB modules :)
So anyway, yea the command already supports that as you noted, and
specifying the module basename would also have worked here so that there
would always only be 1 module dumped (turns out, there's only 1 module
dumped anyway because we don't have PDBs for any of the system libraries,
so DumpClangAST is a no-op in those cases).
On Fri, Dec 14, 2018 at 11:00 AM Pavel Labath <pavel at labath.sk> wrote:
> On 14/12/2018 19:52, Zachary Turner wrote:
> > I don't know if there's a good way to do that. Because debuggers need
> > to be able to see across multiple translation units, this is implemented
> > internally as constructing one giant AST that contains everything for
> > the entire program. LLDB has no notion of a per-module AST, so it would
> > be hard to make this work.
> >
>
> That's not how it's implemented now. The code actually iterates through
> all the modules and dumps each one in turn.
>
> result.GetOutputStream().Printf("Dumping clang ast for %" PRIu64
> " modules.\n",
> (uint64_t)num_modules);
> for (size_t image_idx = 0; image_idx < num_modules; ++image_idx) {
> if (m_interpreter.WasInterrupted())
> break;
> Module *m =
> target->GetImages().GetModulePointerAtIndex(image_idx);
> SymbolFile *sf = m->GetSymbolVendor()->GetSymbolFile();
> sf->DumpClangAST(result.GetOutputStream());
> }
>
>
> In fact, it looks like this command already supports specifying the
> exact module to dump (either by basename or full path).
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20181214/720030a6/attachment.html>
More information about the lldb-commits
mailing list