From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27814 invoked by alias); 23 Dec 2005 15:20:25 -0000 Received: (qmail 27807 invoked by uid 22791); 23 Dec 2005 15:20:25 -0000 X-Spam-Check-By: sourceware.org Received: from nevyn.them.org (HELO nevyn.them.org) (66.93.172.17) by sourceware.org (qpsmtpd/0.31.1) with ESMTP; Fri, 23 Dec 2005 15:20:23 +0000 Received: from drow by nevyn.them.org with local (Exim 4.54) id 1EpoiT-0006yr-Fb for gdb@sourceware.org; Fri, 23 Dec 2005 10:20:21 -0500 Date: Fri, 23 Dec 2005 15:20:00 -0000 From: Daniel Jacobowitz To: gdb@sourceware.org Subject: Re: Stepping over longjmp presumably broken for glibc Message-ID: <20051223152021.GA26794@nevyn.them.org> Mail-Followup-To: gdb@sourceware.org References: <20051222211734.GA13178@nevyn.them.org> <20051223132039.GA24942@nevyn.them.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.8i X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2005-12/txt/msg00185.txt.bz2 On Fri, Dec 23, 2005 at 05:16:53PM +0200, Eli Zaretskii wrote: > > Date: Fri, 23 Dec 2005 08:20:40 -0500 > > From: Daniel Jacobowitz > > Cc: gdb@sourceware.org > > > > > How does glibc restore the correct address when you call longjmp? Do > > > they save the canary in some place, or something? > > > > Yes. However, where it is safed is not a public ABI, and varies wildly > > by architecture; I wouldn't care to try to reverse it in GDB, personally. > > So how would you suggest to solve this? If I'd had a good idea I'd have included it in my original post :-) Probably, we need to single-step until we're out of longjmp, taking special care of any architecture which calls functions from longjmp (I don't know of any, but I bet there is one somewhere). I don't know if we can do that without infrastructure changes or not. -- Daniel Jacobowitz CodeSourcery, LLC