[Lldb-commits] [PATCH] D18848: Add PDBASTParser and parse type information from PDB

Zachary Turner via lldb-commits lldb-commits at lists.llvm.org
Thu Apr 7 12:53:10 PDT 2016


zturner added a comment.

In http://reviews.llvm.org/D18848#394756, @clayborg wrote:

> > One oddity of PDB is that the debug info does not maintain enough information to accurately reconstruct the DeclContext hierarchy. If you have this:
>
> > 
>
> >   namespace Foo
>
> >   {
>
> >       class Bar
>
> >       {
>
> >           class Baz
>
> >           {
>
> >           };
>
> >       };
>
> >   }
>
> > 
>
> > 
>
> > then that will appear in the PDB as a type with the name Foo::Bar::Baz, and there's no information about whether Foo and Bar are namespaces or classes. It is possible to give a best effort attempt, but it's going to be outside the scope of this patch. So, for now, I intend to put every single type under the master translation unit decl with fully scoped names. This isn't perfect, but we can iterate on it in the future.
>
> > 
>
> > Again, this is a work in progress, mostly just want to make sure this looks like the right approach.
>
>
> Couldn't you always just lookup "Foo::Bar" and see if you find a class? And then lookup "Foo" and find a namespace?


If you lookup "Foo" you just wouldn't find anything, because namespaces are not stored anywhere.  So you could then say "Ok I guess Foo is a namespace", but it's a little guess-y.  Then you have to deal with classes defined in functions, make sure anonymous namespaces work, and things like that.  In the end I can probably get pretty accurate, but it'll be a lot of extra work so I rather do it in small pieces.


http://reviews.llvm.org/D18848





More information about the lldb-commits mailing list