From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31361 invoked by alias); 2 Jul 2018 15:54:58 -0000 Mailing-List: contact gnu-gabi-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Post: List-Help: List-Subscribe: Sender: gnu-gabi-owner@sourceware.org Received: (qmail 31307 invoked by uid 89); 2 Jul 2018 15:54:57 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.99.4 on sourceware.org X-Virus-Found: No 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-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-Spam-User: qpsmtpd, 3 recipients X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 02 Jul 2018 15:54:56 +0000 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6C571308A953; Mon, 2 Jul 2018 15:54:54 +0000 (UTC) Received: from tucnak.zalov.cz (ovpn-204-22.brq.redhat.com [10.40.204.22]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D6A6D2010CC4; Mon, 2 Jul 2018 15:54:52 +0000 (UTC) Received: from tucnak.zalov.cz (localhost [127.0.0.1]) by tucnak.zalov.cz (8.15.2/8.15.2) with ESMTP id w62FsoGp024752; Mon, 2 Jul 2018 17:54:50 +0200 Received: (from jakub@localhost) by tucnak.zalov.cz (8.15.2/8.15.2/Submit) id w62FsmC7024751; Mon, 2 Jul 2018 17:54:48 +0200 Date: Mon, 01 Jan 2018 00:00: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-Scanned-By: MIMEDefang 2.84 on 10.5.11.25 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.41]); Mon, 02 Jul 2018 15:54:54 +0000 (UTC) X-SW-Source: 2018-q3/txt/msg00001.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