[Bug debug/12385] Full debug info not emitted for C++ classes with external virtual functions

drow at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Oct 10 14:18:00 GMT 2003


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12385


drow at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2003-10-10 14:18:00
               date|                            |


------- Additional Comments From drow at gcc dot gnu dot org  2003-10-10 14:17 -------
Right now debug information would be emitted in file1.cc for your last
testcase.  I think it's tied to the vtable; the vtable is emitted with the
class's "key function" which is fn1 in this case.

On the other hand I don't think tying debug output to vtable emission makes
a whole lot of sense.  Consider:
library.h:
class f1
{
  public: virtual int bar();
};

library.cc:
#include "library.h"
int f1::bar() { return 2; }

app.cc:
#include "lib.h"

int main()
{
  f1 bat;
  return 2 + bat.bar();
}

Try it.  Build lib.cc with -shared and app.cc with -g.  No debug info for
the class is emitted even though we ought to be able to see the local variable:
(gdb) ptype bat
type = struct C {
    <incomplete type>
}

This shows up debugging libstdc++ all the time.



More information about the Gcc-bugs mailing list