egcs debugging (on alpha)

Jeffrey A Law law@hurl.cygnus.com
Tue Feb 9 15:38:00 GMT 1999


  In message < Pine.LNX.4.04.9902091809030.11211-100000@sdi.aatech.com >you write:
  > On Tue, 9 Feb 1999, Jeffrey A Law wrote:
  > (gdb) print *reg_n_info.data.reg[597]
  > $3 = {first_uid = 11248, last_uid = 1704, last_note_uid = 1704, sets = 1,
  >   refs = 5, deaths = 2, live_length = 60, calls_crossed = 1,
  >   basic_block = -2, changes_size = 1 '\001'}
Hmmm.  It's not a reference counting problem :-)

Probably the next thing is to find out what the allocators *thought* they
did :-)

I would put a breakpoint in "reload", then p reg_renumber[597] at the start
of reload.  Then "finish" and print it again.

The point is to find out if it had a register before or after reload.

You might also want to put a conditional breakpoint in emit_reload_insns
Something like

b emit_reload_insns if chain->insn->fld[0].rtint == 11940

Would be the magic for the current sources.

For the egcs-1.1.x releases use this instead:

b emit_reload_insns if insn->fld[0].rtint == 11940

When you stop do

p debug_reload()
p debug_rtx(reg_equiv_mem[597])
p debug_rtx(reg_equiv_address[597])


Are you having fun yet?

jeff


More information about the Gcc-bugs mailing list