From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18099 invoked by alias); 7 Sep 2003 19:23:46 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 18069 invoked from network); 7 Sep 2003 19:23:45 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sources.redhat.com with SMTP; 7 Sep 2003 19:23:45 -0000 Received: from drow by nevyn.them.org with local (Exim 4.22 #1 (Debian)) id 19w58T-000156-Ee; Sun, 07 Sep 2003 15:23:45 -0400 Date: Sun, 07 Sep 2003 19:23:00 -0000 From: Daniel Jacobowitz To: gdb@sources.redhat.com, libc-alpha@sources.redhat.com Subject: Re: More bad backtraces through nanosleep Message-ID: <20030907192345.GA4141@nevyn.them.org> Mail-Followup-To: gdb@sources.redhat.com, libc-alpha@sources.redhat.com References: <20030907192232.GA3951@nevyn.them.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030907192232.GA3951@nevyn.them.org> User-Agent: Mutt/1.5.1i X-SW-Source: 2003-09/txt/msg00098.txt.bz2 Er, ah, I meant to send this to libc-alpha also of course. On Sun, Sep 07, 2003 at 03:22:32PM -0400, Daniel Jacobowitz wrote: > This is a little unfortunate... > > Glibc with NPTL uses DWARF-2 unwind information to describe syscall > wrappers, because the NPTL implementation of cancellation uses dwarf2 > unwinding. However, glibc with LinuxThreads does not. So if you're running > a multi-threaded LinuxThreads application, when we hit a syscall we're > likely to get completely lost. We can't reasonably expect GDB's prologue > unwinder to figure out nanosleep; the function has no prologue, and then > pushes things onto the stack inside CENABLE/CDISABLE. > > Libc folks, would there be any disadvantages besides space to adding unwind > info to the cancellable syscall wrappers in LT also? How would you feel > about such a patch? -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer