From: Con Bradley <ceb@clearspeed.com>
To: gdb@sources.redhat.com
Subject: Dwarf 2 Stack pointer unwind.
Date: Tue, 01 Feb 2005 17:20:00 -0000 [thread overview]
Message-ID: <734804467.20050201171842@clearspeed.com> (raw)
Hi,
We have an ABI where the stack pointer is never saved to the stack
on a function call and there is NO frame pointer. Instead the stack is
maintained by stack pointer increments and decrements.
How does one describe this in Dwarf Call Frame Instructions? The only
rules available for register operations are to save on the stack or to
copy to another register. No rules to describe plus or negative
register adjustments.
I find it difficult to understand why there is no support for this
in Dwarf 2 or Dwarf 3 as this must be a common idiom.
When we adjust the stack pointer we issue CFA_CFA_def_cfa operations
to describe the new rule to access the CFA, effectively issuing a CFA
rule to compensate for the stack pointer being changed. This is
sufficient to allow stack unwind to work. However, when we look up the
values of automatics in upper stack frames this fails. The reason
being that the address of these variables (in location expressions) is given
as an offset from the stack pointer but there appear to be no unwind
rules for the stack pointer register.
More correctly we'd like to say that the address of an automatic was
CFA plus offset but there doesn't appear to be any support for this.
How does one describe stack pointer changes which do not involve
saving on the stack or use of a frame pointer.
Con Bradley.
next reply other threads:[~2005-02-01 17:20 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-02-01 17:20 Con Bradley [this message]
2005-02-01 17:25 ` Daniel Jacobowitz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=734804467.20050201171842@clearspeed.com \
--to=ceb@clearspeed.com \
--cc=gdb@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox