From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5291 invoked by alias); 11 Apr 2016 21:56:36 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 5187 invoked by uid 89); 11 Apr 2016 21:56:35 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=expressed, HTo:U*gingold, interest 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 (AES256-GCM-SHA384 encrypted) ESMTPS; Mon, 11 Apr 2016 21:56:25 +0000 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F21916438B; Mon, 11 Apr 2016 21:56:23 +0000 (UTC) Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u3BLuMfG011141; Mon, 11 Apr 2016 17:56:22 -0400 Subject: Re: [PATCH] (ARM Cortex-M) FPU and PSP aware exception frame unwinder To: James-Adam Renquinha Henri , gdb-patches@sourceware.org, Christopher Friedt , Tristan Gingold References: <5706DA27.1070308@cimeq.qc.ca> From: Pedro Alves Message-ID: <570C1D85.1060706@redhat.com> Date: Mon, 11 Apr 2016 21:56:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.1 MIME-Version: 1.0 In-Reply-To: <5706DA27.1070308@cimeq.qc.ca> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2016-04/txt/msg00231.txt.bz2 Hi, [Adding a few folks who either worked on or expressed interest in this before.] On 04/07/2016 11:07 PM, James-Adam Renquinha Henri wrote: > I submitted it as a bug to the GNU ARM Embedded initially, see here for > details: https://bugs.launchpad.net/gcc-arm-embedded/+bug/1566054 > > Basically, this patch allow gdb to unwind properly an extended stack > frame, that is an exception frame with FPU state stacked. Additionally, > because all Cortex-M variants have 2 stack pointers, the Main Stack > Pointer (MSP) and the Process Stack Pointer (PSP), the code in the patch > also check which stack was used prior to the exception. That way, > backtraces work beautifully. > > In my original submission, I mentioned a known issue that I didn't try > to fix *yet*, because that would involve a lot more work, and the impact > is relatively minor: for a given outer frame, some FPU registers may not > be reported correctly. I hope you don't mind too much. I consider the > current patch still useful, because at least backtraces work, and it's > an annoyance not to be able to get them. > Thanks for the patch. However, we should really add new target descriptions/features that describe these registers to gdb instead of looking them up by name. Please see: https://sourceware.org/ml/gdb-patches/2015-12/msg00273.html And see more in this earlier attempt at getting the unwinder working: https://sourceware.org/ml/gdb-patches/2014-09/msg00649.html Tristan also wrote yet another patch for the same, as mentioned at: https://sourceware.org/ml/gdb-patches/2015-12/msg00281.html Tristan, did you ever manage to post that? Lots of duplicated effort. :-/ :-( Thanks, Pedro Alves