I'm looking at the H8/300 frame debugging info, and it seems to me
that gdb needs to have at least *some* information about where the
return address is in order to unwind the stack using dwarf2 call frame
information, perhaps because H8/300 saves the RA on the stack, not in
a register.  However, we only set up the RA column if we're using
dwarf2 for EH.  Why?

$ grep -C 1 '^ .*if *(.*DWARF2_UNWIND_INFO' *
dwarf2out.c-#ifdef DWARF2_UNWIND_INFO
dwarf2out.c:  if (DWARF2_UNWIND_INFO)
dwarf2out.c-    initial_return_save (INCOMING_RETURN_ADDR_RTX);

With my local dwarf2 support patches, commenting out the if() above is
the difference between backtraces working, and not working.

Can we call initial_return_save for non-EH unwind too?

Reply via email to