This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Dwarf debug location list
majia gm <gmmajia@gmail.com> writes:
> I'm working on a non-mainstream RISC machine. I found that the
> CFA(Canonical Frame Address) of a function as follows, is record
> errorly in a location list.
>
> The origninal function is wrriten in C, and here's the objdump result.
>
> prologue:
> stw.w lr, [sp-], 4
> sub sp, sp, #404
>
> ...
>
> epilogue:
> add sp, sp, #404
> cmovub pc, lr
>
> The CFA is discribed relatively to the stack pointer sp. But the
> location list for CFA only noticed the adjustment of sp in the
> prologue but ignored the one in the epilogue.
>
> I'm trying to figure out how this happened. But I'm not familiar with GCC.
>
> Could you give me some hints on how the location list of the CFA is generated?
> Or is there any reference to the Dwarf generating machenism in GCC?
I think you neglected to mention which version of gcc you are using.
gcc only recently started generating good information for unwinding
through an epilogue. I think it was in gcc 4.5 but not before.
Ian