From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31362 invoked by alias); 2 Jul 2018 15:54:58 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 31307 invoked by uid 89); 2 Jul 2018 15:54:57 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:1231, age, day X-HELO: mx1.redhat.com Date: Mon, 02 Jul 2018 15:54:00 -0000 From: Jakub Jelinek To: Michael Matz Cc: Jeff Law , Florian Weimer , GCC , GNU C Library , Binutils , gnu-gabi@sourceware.org Subject: Re: Invalid program counters and unwinding Message-ID: <20180702155448.GW7166@tucnak> Reply-To: Jakub Jelinek References: <6feeaf09-0bc2-238b-42df-2ff915f3581e@redhat.com> <2b47dbd9-f1a2-1bf0-06ca-fca40660fabf@redhat.com> <6c555c05-e6d7-f37a-577f-4e0559c36f76@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.2 (2017-12-15) X-SW-Source: 2018-07/txt/msg00033.txt.bz2 On Mon, Jul 02, 2018 at 05:48:32PM +0200, Michael Matz wrote: > Hi, > > On Thu, 28 Jun 2018, Jeff Law wrote: > > > I believe "dumb" is referring to the fact that we're already in a bit of > > a weird state as evidenced by the NULL FDE. Blindly trying to read the > > contents of the PC that we couldn't map to an FDE is, IMHO, dumb. > > > > One might even be able to argue in this day and age that we should have > > suitable descriptors for everything. If no suitable descriptor is found > > then backtracing should stop. Lack of suitable descriptors in any code > > would be considered a bug in that scenario. > > I disagree. ASM code often lacks unwind descriptors (now less than in the > past, but still). My rule of thumb is always: no descriptor -> has to be > a framepointer-using routine with standard calling sequence. (I.e. > declare the combination of no descriptor and no fp to be a bug). Some of > the callee-saved register will temporarily be wrong but unwinding can > continue. Doesn't that clash with the x86-64 ABI which says what kind of FDE use by default if none is found (essentially a standard leaf routine that doesn't change sp, nor save any registers)? Jakub