Dwarf debug location list

majia gm gmmajia@gmail.com
Sun Nov 28 08:22:00 GMT 2010


Hi, guys.

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?

Thanks a lot.

Gmmajia



More information about the Gcc-help mailing list