I just sent an updated patch with the following comments:
After some investigation, it turns out that the get_fp_num()
function,
which was "grubbing around in the private data
structures of the symbol
reader", is not needed at all. Perhaps that code was
left over from an
earlier version of GDB. Stack unwinding on Xtensa can be
done using the
register windows -- it requires neither prologue analysis to
find the
frame pointer nor DWARF unwind info. The only thing the
get_fp_num()
function was used for was identifying frames, but it seems
like we can
just use the stack pointer for the frame ID. (Is that
right?) I've
changed the code to do this and it appears to work fine: no
DejaGnu
regression has been detected, and manual testing on
alloca-tests hasn't
exposed anything.
The other suggestions that I've received so far were easy to
use and
I've done that. By the way, I also removed the line to use
the
dwarf2_frame_sniffer, because DWARF unwind info is not
currently used
for Xtensa.
Maxim Grigoriev
Tensilica, Inc.
3255-6 Scott Boulevard
Santa Clara, CA 95054-3013
(w) 408-566-1770
|