[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