This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]