This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: powerpc-ibm-aix4.3.3.0 bootstrap issue


> 	I have been unable to cleanly bootstrap GCC on the trunk since the
> HOST_WIDE_INT use of "long long" change.

> 	I would appreciate any help in trying to track this down as I am
> not having much luck.

First, isolate the .i (or .ii file) that differs in the assembly
output.  Then, isolate the two compilers that produce this.

>From there, you can put a printf in routines that are heavily used,
and print out something that doesn't change about them INSN_UUID,
__func__, lineno... from compile to compile (not addresses of rtx
structures).  Run, and see if the .s output is still failing.  If it
is, you can then run diff on the debugging output (can be easier to do
this with diff, then doing it in on online session in gdb).  At the
first difference, you work in more prints between the last one that
worked and the current one.

Or, do this in an online way with two gdb's running side by side.  Run
with -da, find first difference, break on gen_rtx or add_insn or one
of those...  Go up a level, set a break point on calling site, rerun
to that temporal instance.  I usually binary search with cont 50, cont
100, cont 200, or, cont 25, cont 13, cont 7...  then step into the
routine, watching for the different.  In a large complex function,
binary searching with next 20, next 40 and so on, until you find a
difference is fairly quick.  And then you repeat.

After doing this for a day, it becomes easier and more automatic.
Also, you learn to slant the binary seach to favor running for a
shorter period of time, instead of in the middle, as if you miss it,
it takes more time and energy to get back to the right temporal spot.


This is standard debugging trick #135.  Now, if only I could find the
web pages that describes it in all is glory detail.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]