[Dwarf-Discuss] Multiple address space architectures and DW_AT_frame_base

Michael Eager eager at eagercon.com
Fri May 20 10:28:08 PDT 2011


Relph, Richard wrote:
> Imagine an architecture with multiple disjoint memory spaces. Imagine 
> that the frame base could be in any of them. Other than expanding the 
> size of an address, how can I do this?
> 
> I’ve thought about DW_AT_address_class, but I can’t figure out how to 
> associate it with a DW_TAG_subprogram’s DW_AT_frame_base location. The 
> spec says DW_AT_address_class for DW_TAG_subprogram describes how to 
> access the subprogram itself.
> 
> DW_AT_address_class isn’t technically allowed in a DW_TAG_compile_unit 
> (it will be the same address space across the entire compilation unit).
> 
> A location description doesn’t have a mechanism to specify an address 
> class. It would be be implied by the type information associated with 
> the object being described (though if the object shifts address spaces, 
> that seems impossible to describe as well.)
> 
> Unfortunately, there is no type information for DW_AT_frame_base.
> 
> Any ideas?

As John suggested, it would help if you could give an example of
what you are trying to describe.  Trying to construct a cogent
picture of an imaginary architecture is pretty difficult.

You don't mention a stack, but DW_AT_frame_base is used to describe
frames on a stack.  I guess that it might be used in different ways,
but if that is the case, we don't know how you are using it.

How does the processor identify which memory space the stack is in?
How does the processor access values on the stack?

-- 
Michael Eager	 eager at eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077




More information about the Dwarf-Discuss mailing list