Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Luis Machado <lgustavo@codesourcery.com>
To: James-Adam Renquinha Henri <arenquinha@cimeq.qc.ca>,
	<gdb-patches@sourceware.org>
Subject: Re: [PATCH] (ARM Cortex-M) FPU and PSP aware exception frame unwinder
Date: Wed, 20 Apr 2016 16:27:00 -0000	[thread overview]
Message-ID: <5717ADDD.30908@codesourcery.com> (raw)
In-Reply-To: <5717ACDE.4070503@cimeq.qc.ca>

On 04/20/2016 11:22 AM, James-Adam Renquinha Henri wrote:
>> On 04/07/2016 05: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.
>>
>> I have feeling people will mind. Ideally it should keep the old behavior
>> intact if possible. So if you can fallback to the old code, it should be
>> ok.
>
> Sorry I don't get it. The old code didn't work in the cases I'm
> providing a fix for, so falling back to the old behavior means just
> giving wrong results? *scratches head*
>

I may have misunderstood. Is the known issue something caused by the new 
patch (a regression) or something that is still broken but is not being 
addressed by this patch at this time?

If the latter, it is perfectly fine. I thought it was the former.

> As I said, getting the behavior 100% correct would require much more
> work, and I felt that it was better to provide an almost correct
> solution so others would benefit quickly of this fix. It might be more
> honest to report a warning to the user that s0-s16 and fpscr could be
> incorrect upon detection of an extended frame. Mind that the old
> situation was "I can't even backtrace past the (CPU) exception if I
> happen to use the FPU", so IMHO it's less harmful to give inaccurate FPU
> information.
>
> Of course I or someone else can work to get it 100% right and we can
> throw all that altogether if it's better that way.


  reply	other threads:[~2016-04-20 16:27 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-07 22:07 James-Adam Renquinha Henri
2016-04-11 21:03 ` Luis Machado
2016-04-20 16:23   ` James-Adam Renquinha Henri
2016-04-20 16:27     ` Luis Machado [this message]
2016-04-11 21:56 ` Pedro Alves
2016-04-14  6:34   ` Tristan Gingold
2016-04-20 23:14     ` James-Adam Renquinha Henri
2016-04-22 14:17       ` Pedro Alves

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5717ADDD.30908@codesourcery.com \
    --to=lgustavo@codesourcery.com \
    --cc=arenquinha@cimeq.qc.ca \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox