Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <drow@false.org>
To: Mark Kettenis <mark.kettenis@xs4all.nl>
Cc: gdb@sourceware.org
Subject: Re: Stepping over longjmp presumably broken for glibc
Date: Fri, 30 Dec 2005 16:25:00 -0000	[thread overview]
Message-ID: <20051230162507.GA5006@nevyn.them.org> (raw)
In-Reply-To: <200512300932.jBU9WBn6015669@elgar.sibelius.xs4all.nl>

On Fri, Dec 30, 2005 at 10:32:11AM +0100, Mark Kettenis wrote:
> > Date: Thu, 29 Dec 2005 21:38:31 -0500
> > From: Daniel Jacobowitz <drow@false.org>
> > 
> > On Mon, Dec 26, 2005 at 08:24:30PM -0800, Jim Blandy wrote:
> > > Here's my (non-qualifying because it relies on help from the runtime)
> > > idea: can't we use Dwarf CFI here?  That is, treat longjmp as a weird
> > > function whose CFI indicates that it unwinds to the setjmp.  The
> > > DW_CFA_val_expression operator, new in the released Dwarf 3 spec,
> > > allows CFI to use an arbitrary expression to compute the saved value
> > > of the register; we can apply that to the return address column just
> > > as well as anything else.  In the case Daniel described, the
> > > expression would use DW_OP_xor (probably the first use ever of that
> > > opcode!).
> > 
> > How would you distinguish a longjmp with CFI that returns to caller
> > from a longjmp with CFI that returns to setjmp?
> 
> Huh?  longjmp() always returns to a context saved by a setjmp().

That's not what I meant - I meant between a longjmp with "normal"
unwind information, or with Jim's proposed "magic" unwind information
that returned to the setjmp target.  There's got to be at least one of
the former out there somewhere...

-- 
Daniel Jacobowitz
CodeSourcery, LLC


  reply	other threads:[~2005-12-30 16:25 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-12-22 21:17 Daniel Jacobowitz
2005-12-23  3:32 ` Jim Blandy
2005-12-23  8:25 ` Eli Zaretskii
2005-12-23 13:20   ` Daniel Jacobowitz
2005-12-23 15:16     ` Eli Zaretskii
2005-12-23 15:20       ` Daniel Jacobowitz
2005-12-23 17:07         ` Eli Zaretskii
2005-12-23 17:09           ` Daniel Jacobowitz
2005-12-23 17:46             ` Eli Zaretskii
2005-12-23 18:01               ` Simon Richter
2005-12-24 11:59                 ` Eli Zaretskii
2005-12-24 16:23               ` Daniel Jacobowitz
2005-12-24 16:36                 ` Eli Zaretskii
2005-12-24 16:59                   ` Daniel Jacobowitz
2005-12-26  4:06                   ` Jim Blandy
2005-12-26  5:19                     ` Eli Zaretskii
2005-12-27  4:24                       ` Jim Blandy
2005-12-30  2:38                         ` Daniel Jacobowitz
2005-12-30  9:32                           ` Mark Kettenis
2005-12-30 16:25                             ` Daniel Jacobowitz [this message]
2006-01-02  5:25                               ` Jim Blandy
2006-01-06 19:43                                 ` Daniel Jacobowitz
2006-01-06 20:28                                   ` Jim Blandy
2006-01-06 20:36                                     ` Daniel Jacobowitz
2006-01-06 20:53                                       ` Jim Blandy
2006-01-06 21:27                                       ` Mark Kettenis
2006-01-06 21:28                                         ` 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=20051230162507.GA5006@nevyn.them.org \
    --to=drow@false.org \
    --cc=gdb@sourceware.org \
    --cc=mark.kettenis@xs4all.nl \
    /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