From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1553 invoked by alias); 16 May 2008 17:47:22 -0000 Received: (qmail 1544 invoked by uid 22791); 16 May 2008 17:47:21 -0000 X-Spam-Check-By: sourceware.org Received: from NaN.false.org (HELO nan.false.org) (208.75.86.248) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 16 May 2008 17:47:00 +0000 Received: from nan.false.org (localhost [127.0.0.1]) by nan.false.org (Postfix) with ESMTP id 9A5B2983F9; Fri, 16 May 2008 17:46:58 +0000 (GMT) Received: from caradoc.them.org (22.svnf5.xdsl.nauticom.net [209.195.183.55]) by nan.false.org (Postfix) with ESMTP id 7481E983D6; Fri, 16 May 2008 17:46:58 +0000 (GMT) Received: from drow by caradoc.them.org with local (Exim 4.69) (envelope-from ) id 1Jx41B-0005HL-9u; Fri, 16 May 2008 13:46:57 -0400 Date: Fri, 16 May 2008 17:47:00 -0000 From: Daniel Jacobowitz To: Aleksandar Ristovski Cc: Mark Kettenis , gdb@sourceware.org Subject: Re: Frame lost after 'leave' and before 'ret' instruction on i386? Message-ID: <20080516174657.GA20043@caradoc.them.org> Mail-Followup-To: Aleksandar Ristovski , Mark Kettenis , gdb@sourceware.org References: <482DA814.7030703@qnx.com> <200805161723.m4GHNvWv024856@brahms.sibelius.xs4all.nl> <482DC452.1020102@qnx.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <482DC452.1020102@qnx.com> User-Agent: Mutt/1.5.17 (2008-05-11) X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2008-05/txt/msg00133.txt.bz2 On Fri, May 16, 2008 at 01:28:50PM -0400, Aleksandar Ristovski wrote: > Out of curiosity: what is the problem with specifying epilogue? Am I > wrong when I say that there can be only so many epilogue types > (i.e. compiler will not generate infinite number of epilogues)? Any time the epilogue is multi-instruction, the compiler is free to schedule instructions in the middle of it, and GCC does. Plus it varies based on the size of the stack frame. On some platforms an epilogue is hard to distinguish from an indirect function call. Sibling calls have mini-epilogues in front of them, too. And there can be lots of copies of the epilogue, and they don't have to be at the end of the function; they can be inlined at return sites. So yes, it's a little harder than that :-) -- Daniel Jacobowitz CodeSourcery