Debugging a port

Nathan Sidwell nathan@codesourcery.com
Tue Dec 7 16:09:00 GMT 2004


Russell Shaw wrote:
> Hi,
> I'm trying to locate a bug in code generated by the avr port of gcc.
> 
> I've looked thru all the files in gcc-3.4.3/gcc/config/avr and
> have read the gcc internals manual and a few others off the web.
> 
> Dumps at various compilation phases can be done with the -d switch,
> but i was wondering if a more interactive approach could be used
> with gdb. Where is a good place to put gdb breakpoints in the gcc
> source? What other useful methods of debugging in gcc are there?

What I do for code generation bugs is examine the -d dumps to determine
which phase has done the invalid transform, and what that transform started
with.  Then in GDB set a breakpoint in the instruction generator function
to trap when the illformed insn is created.  then run the program.  When
the break point is hit, set some watch points to catch when the insn is being
manipulated.  Then continue.  Everytime the watchpoints trigger, work
out whether this is the location of the bad transform

nathan

-- 
Nathan Sidwell    ::   http://www.codesourcery.com   ::     CodeSourcery LLC
nathan@codesourcery.com    ::     http://www.planetfall.pwp.blueyonder.co.uk



More information about the Gcc mailing list