r188739 - Revert "Revert "Revert "Revert "DebugInfo: Omit debug info for dynamic classes in TUs that do not have the vtable for that class""""

Greg Clayton gclayton at apple.com
Tue Dec 17 18:09:04 PST 2013


On Dec 17, 2013, at 5:59 PM, Eric Christopher <echristo at gmail.com> wrote:

> 
> 
> On Tue Dec 17 2013 at 5:29:51 PM, Greg Clayton <gclayton at apple.com> wrote:
> 
> On Dec 17, 2013, at 4:40 PM, Eric Christopher <echristo at gmail.com> wrote:
> 
> > Let's see if I've managed to divine the use case that you're talking about here so we can attempt to refocus the discussion somewhat:
> >
> > a) You ship headers and libraries to customers.
> > b) You will not or, at least, have not shipped debug info to those customers.
> > c) For this case in particular:
> >    1) The headers contain a polymorphic base class
> >    2) Customers derive from this polymorphic base class
> >    3) Linking still works since the customer has the library but not the debug info for the base class where the key function was emitted.
> >
> > Is this correct?
> 
> yes, this is what is got our kernel group filing bugs.
> 
> For any LLDB debugging, I will always want full base class definitions.
> 
> You will always want full base class definitions where? With the fully linked binary or elsewhere? Do you want to require them all in the same .o file as any derived class definition?

Everywhere.

> 
> I.e. if you compile your entire program with debug info then you'll have a full base class definition somewhere in the debug info.

No you won't. I refer back to the case where developers can link against a library that contains a class that is inherited from, but has no debug info.

> If you can't cope with this then it's a bug in lldb that you can't process correct debug information.


For LLDB we need to re-create types from a single DWARF file. Yes, call this lame, but AST's are not portable from version of clang to version of clang so we have no option. Clang asserts when it is unhappy, we must keep clang happy or we crash because it asserts.

Greg





More information about the cfe-commits mailing list