[Dwarf-Discuss] DWARF for DSP like processors with multiple memories
Michael Eager
eager@eagercon.com
Tue Nov 25 16:56:22 GMT 2008
Anthony Berent wrote:
> Hi David,
>
>> For 4:
>> There's only one DW_AT_frame_base. Would a callable expression for the
>> other stacks help ? I assume they each have their own stack
>> pointer/virtual frame pointer.
>
> Actually I was looking more at the Call Frame Information than the
> DW_AT_frame_base; although that does lead me to ask how the two relate,
> since they both seem to be giving some of the same information. Does it ever
> make sense to have both?
I believe that GCC for PowerPC generates both DW_AT_frame_base and
CFI which gives partial register save info. DW_AT_frame_base is used
to access args and local variables, if I recall correctly.
> The reason I am looking at Call Frame Information is that we want to
> describe how registers are saved on stacks during a call. Extending
> DW_AT_frame_base might help with finding variables on the stacks, but I
> think we need call frame style information to be able to do a full job of
> unwinding the stacks.
CFI should give you everything you need to describe registers
saved over a call. You usually don't need complete CFI info to
unwind the stack. Some implementations (like GCC-powerpc) only
provide the minimum needed to unwind, leaving the ABI (or guesswork)
to know where specific registers have been saved on the stack.
In general, it doesn't seem like a good idea to create a non-standard
extension to one part of DWARF (like DW_AT_frame_base) when another
part of the specification provides the desired description.
--
Michael Eager eager at eagercon.com
1960 Park Blvd., Palo Alto, CA 94306 650-325-8077
More information about the Dwarf-discuss
mailing list