On Fri, Mar 20, 2009 at 4:54 PM, Ian Lance Taylor <i...@google.com> wrote:
> Peter Leist <peterle...@googlemail.com> writes:
>
>> How can I interpret the stack frame of the current_function? That
>> means, how can
>> I tell what is stored at the location FP+xxx. If that is not (easily)
>> possible, it would
>> help if I can somehow determine the type of data stored at that
>> location (i.g is that
>> a reference to a variable or the contents of a variable).
>
> Stack slots can be shared by different variables, so I'm not sure there
> is a coherent answer to this.

I understand that, but at a given point in the program flow the assignment
of stack slot to a variable should be fixed.

> That said, look at assign_stack_local and
> assign_stack_temp in gcc/function.c.

Thanks for the pointer, but it seams these functions are responsible only
for arguments, not for local variables (at least assign_stack_local).

What I try to achieve is: Given the frame pointer for a function X, how can I
tell which of the used stack frames hold what data (at a given time in
the program flow).
To be more exact, I would like to know that before a call is taken. I want to
tell for every stack slot of the *calling* function if the data in that slot is
passed to the called function as a reference or not....

Every debugger should be able to tell that, or am I wrong? Can I probably
extract the information from debug data? I've seen a reference to
x_stack_slot_list
in assign_stack_local.c but that doesn't seem to do the trick.

Thanks,
Peter

Reply via email to