problems parsing dwarf frame info on amd64 optimized code

Richard Henderson rth@redhat.com
Wed Mar 10 19:41:00 GMT 2004


On Mon, Mar 08, 2004 at 10:44:03AM -0800, Max Asbock wrote:
> When I turn on the -O flag things fall apart. This is with gcc 3.2.2.
> The parser finds two rules in the CIE:
> CFA_def_cfa r7+0x8           (rsp)
> CFA_offset r16 at cfa-0x8  (return address)
> and then in the FDE it finds:
> ...
> CFA_def_cfa_offset <offset>

This is correct.

> This works for stepping from the first frame to the second, but
> on the next step it fails, since the CFA is read again from r7 (rsp)
> which hasn't changed.

Huh?  I think you need to provide a concrete example because what
you're saying doesn't make any sense.  Particularly "stepping from
first frame to the second".  There's only one frame in any function
generated by gcc...

> And it seems that the CFA <offset> is the
> offset relative to the current CFA, not relative to the value in rsp.

Incorrect.



r~



More information about the Gcc mailing list