From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Received: (qmail 19417 invoked from network); 9 Apr 2004 22:40:24 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sources.redhat.com with SMTP; 9 Apr 2004 22:40:24 -0000 Received: from drow by nevyn.them.org with local (Exim 4.30 #1 (Debian)) id 1BC3xd-0000Ig-SW; Fri, 09 Apr 2004 17:54:53 -0400 Date: Fri, 09 Apr 2004 22:40:00 -0000 From: Daniel Jacobowitz To: Andrew Cagney Cc: jim.houston@comcast.net, gdb-patches@sources.redhat.com Subject: Re: [patch] allow switching stacks Message-ID: <20040409215453.GA1090@nevyn.them.org> Mail-Followup-To: Andrew Cagney , jim.houston@comcast.net, gdb-patches@sources.redhat.com References: <404E2745.2090405@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <404E2745.2090405@gnu.org> User-Agent: Mutt/1.5.1i X-SW-Source: 2004-04/txt/msg00225.txt.bz2 On Tue, Mar 09, 2004 at 03:21:25PM -0500, Andrew Cagney wrote: > >Hi Everyone, > > > >This patch against gdb-6.0 adds an option to disable an error check > >which reports a non-contiguous stack as corrupted. I need this > >option to get a reliable stack trace using kgdb on the x86-64 Linux > >kernel because it uses a separate per-processor interrupt stack. > > > >This option is enabled with: > > > > set backtrace switch-stacks on > > > >Jim Houston - Concurrent Computer Corp. > > Can you provide more details of the problem -- exactly what do things > look like at the stack switch? > > Your problem sounds very similar to the combination of a signal altstack > and a signal trampoline - for such a situtation the stack direction > check isn't applicable (pointing to the real bug). They're going to look like normal frames unless GDB has magic to recognize the interrupt handler, which doesn't seem like a good idea to me - we can just use CFI to unwind through these things, otherwise. There's no way in unwind information to annotate a non-call frame, which is the common relevant property for signal frames, dummy frames, and interrupt handler frames. Should there be? The other question is whether the order check is really safe at all. I can write (un-portable, using assembly, sure) code to call a function on an alternate stack. It would be nice to be able to backtrace through something like that, if practical. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer