purifying egcs's g++ ?
Jeffrey A Law
law@cygnus.com
Tue Sep 30 22:30:00 GMT 1997
In message < 199709292251.PAA02638@telaviv.tmai.com >you write:
>
> Hello Purify:
>
> I tried to purify a code that is compiled
> by egcs's g++ (See http://www.cygnus.com/egcs/ ).
>
> // I know egcs is experimental - but it may well become the main-g++-stream
This is a bug/misfeature in Purify.
Basically, Purify goes bezerk anytime it sees debug symbols that
it doesn't understand. Similarly if it runs into code sequences
that it doesn't understand (like modifying the return pointer in
the delay slot of a call to simulate an unconditional jump that
would have occurred immediately after the call).
The debug symbol it's running into is, in effect, a function bounding
symbol so that the debugger can reliably find the start and end of
a function -- even if functions from a particular .o file don't
end up in the same relative order in the final executable (as happens
for ctors/dtors or when doing function level link time reordering).
Cygnus as well as some of our customers have already reported this
problem to Purify folks. I don't know if they've fixed Purify to
handle these relatively new debug symbols.
We're likely to run into this general problem again in the future;
possibly even soon with the new stabs we're using for describing
live range spliting.
jeff
More information about the Gcc
mailing list