[rfa/c++] cp_lookup_rtti_type, take 2

Michael Elizabeth Chastain mec.gnu@mindspring.com
Fri Dec 5 04:23:00 GMT 2003


Cool, I will commit this patch now.

> The only reason we can do it by symbol lookup at all is the One
> Definition Rule, and we should probably be restricting ourselves to the
> objfile in which we found the minimal symbol.

Yes, it's still very flaky.  The only reason it works now is that
there is a low-priority "fallback" search over all static blocks.
That is just more trouble waiting to happen.

We've got a vtbl pointer, and we want type information for it.
So we translate:

  vtbl address -> minsym
  minsym -> mangled name
  mangled name -> demangled name
  demangled name -> prefix
  prefix -> symbol
  symbol -> type

Maybe we should just go from the vtbl address to the symbol without
converting to a name and back again?!

> Now that we've had another major release of GDB I am extremely tempted
> to rip out aCC C++ support.  If you really want to experiment, the HP
> TestDrive systems do have aCC installed; www.testdrive.hp.com and
> spe191.testdrive.hp.com:telnet.  But they're a real nuisance to run
> tests on due to the lack of usable (to me) tools, and the restrictive
> firewall.

That's in my area.  "Get into testdrive" is a task for me, and "set up
migchain/migbat" is another task.  I can handle the lack of tools as
long as there is lots of disk space, because I bootstrap the whole
toolchain.  I'll have to see how restrictive the firewall is.

> And if we found problems, there wouldn't be anyone motivated
> to fix them.

Well, it would be useful to get enough hpux running to clean up
all the hp/acc special code in the test suite.  It would be great
if acc is completely getting replaced, too.

> The "earlier version" used VAR_DOMAIN, FYI.  It was presumably based on
> the code in gnu-v2-abi.c, but because gnu-v2-abi.c didn't show the
> problem I encountered at the time I didn't update it.

Aha, the history is falling into place.

In retrospect, my new lookup_rtti_type should take the domain as a parameter.

This is the major regression from gdb 6.0 to gdb HEAD.  I'd like to get
gdb HEAD to a state where there are no known regressions.  I have a
goal that gdb_6_1-branch will take only 6 weeks from cutting the branch
to the release!

Michael C



More information about the Gdb-patches mailing list