On Tue, Mar 25, 2003 at 03:51:32PM -0800, Jim Ingham wrote:
One thing we had to worry about at least on Mac OS X is that we don't
use a shared libstdc++, rather every shlib that uses C++ get its own
copy of all the libsupc++ code. So there are actually many copies of
__cxa__begin_catch hanging around. To do this properly, you have to
search exhaustively for these symbols, not just take the first hit.
Moreover, you have to redo it on every shared library load, or you
will
miss some. This still might bite you on other systems, for instance
if
out of paranoia somebody had linked their shlib or executable
statically to libstdc++.a (so they wouldn't get bit by changing ABI
issues or whatever).
BTW. The more general problem of a symbol resolving to multiple
instances - for instance setting file:line breakpoints in inlined
functions or template method defn's - is something we need to address.
It really ticks off our C++ friends. I thought I was going to have
time to think about this in the next month or two, but I got
sidetracked on other issues. But I will need to get back to it after
our WWDC (in June).
Yes. Rather than focusing on it with a special hack here, I'd rather
eventually address it properly. Thanks for pointing this out.