This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [rfa] Attach vsyscall support for GNU/Linux
- From: Mark Kettenis <mark dot kettenis at xs4all dot nl>
- To: drow at false dot org
- Cc: gdb-patches at sources dot redhat dot com, ezannoni at redhat dot com, cagney at gnu dot org, roland at redhat dot com
- Date: Sun, 7 Nov 2004 18:35:44 +0100 (CET)
- Subject: Re: [rfa] Attach vsyscall support for GNU/Linux
- References: <20041024185345.GB22700@nevyn.them.org> <200410242054.i9OKsjnl028328@elgar.sibelius.xs4all.nl> <20041024231636.GA21927@nevyn.them.org> <200410252212.i9PMCQhJ031724@elgar.sibelius.xs4all.nl> <20041101161552.GA26993@nevyn.them.org> <200411012045.iA1KjKDg000415@elgar.sibelius.xs4all.nl> <20041105234229.GA6082@nevyn.them.org>
Date: Fri, 5 Nov 2004 18:42:30 -0500
From: Daniel Jacobowitz <drow@false.org>
How about this, in the meantime? If you don't like the approach, I'll
wait until we can properly decide the relationship between unwinders
and frame types.
This patch adds a new sniffer, dwarf2_signal_frame_sniffer, which will
only accept the frame if an architecture-specific hook has claimed that
this is a signal frame (i386 GNU/Linux provides one that works by
name). However, we then use the CFI normally - the only difference is
that the result has SIGTRAMP_FRAME as its type. It works beautifully!
Tested on i386-pc-linux-gnu, with vsyscall DSO.
Within the current framework this seems to be a reasonable approach.
Actually it's a lot less invasive than I envisioned this to be. So,
actually I like it ;-). Thanks! I'm wondering though whether we need
the seperate dwarf2_signal_frame_sniffer. Actually I'm sure we don't.
Targets that don't want this simply shouldn't provide the
signal_frame_p() function. Can you fix that? Just change
dwarf2_frame_sniffer such that it checks signal_frame_p() and returns
&dwarf2_sigtramp_frame_unwind instead of &dwarf2_frame_unwind if it's
true.
Oh, and please check the dwarf2-frame.* changes in as a seperately
from the vsyscall changes.
Cheers,
Mark