From: Paul Koning <Paul_Koning@dell.com>
To: Joe.Buck@synopsys.COM
Cc: schwab@suse.de, mark.kettenis@xs4all.nl, drow@false.org,
gcc@sources.redhat.com, sposelenov@emcraft.com,
gdb@sources.redhat.com
Subject: Re: Problem reading corefiles on ARM
Date: Thu, 07 Aug 2008 13:30:00 -0000 [thread overview]
Message-ID: <18586.63614.111756.993754@gargle.gargle.HOWL> (raw)
In-Reply-To: <20080806215806.GN18206@synopsys.com>
>>>>> "Joe" == Joe Buck <Joe.Buck@synopsys.COM> writes:
Joe> Paul Koning <Paul_Koning@dell.com> writes:
>> > That's sufficient for live debugging but not for corefiles. In
>> that > case you do want caller-saved registers, because they may
>> contain > local variable values that don't live in memory at the
>> time of the > abort call.
Joe> On Wed, Aug 06, 2008 at 11:38:14PM +0200, Andreas Schwab wrote:
>> In an optimized build you can't expect any local variable to
>> survive, since it may just be dead before the call, or its value
>> may be unavailable for any other reason. The use of the noreturn
>> attribute only adds little to this.
Joe> Agreed. I think that the objective should be that if there is
Joe> an abort call, then from either a core dump or when gdb'ing a
Joe> live process it should be possible to determine the call site of
Joe> the abort() call, even with -O2/-Os. But beyond that, the
Joe> optimizer should be free, just as in other cases, to discard
Joe> values in registers that will never be used again.
Joe> After all, if we have
Joe> int func1(int); void func2(int); void ordinary_function(void);
Joe> void func(int arg) { int v1 = func1(arg); func2(v1);
Joe> ordinary_function(); }
Joe> and there's a segfault in ordinary_function, in general v1 isn't
Joe> going to be kept around for inspection in the core dump. So why
Joe> should we impose a stricter requirement if ordinary_function is
Joe> replaced by abort() ? It seems Paul thinks we should be
Joe> required to save v1 if there's an abort call, unless I'm
Joe> misunderstanding.
My view is that abort() should be like other (returning) functions --
no special treatment for variable liveness. Yes, that means in the
optimized case you may lose, some of the time. People chose -O
settings with that issue in mind. I'm not asking for more to be saved
for abort() than for regular functions -- but also no less.
paul
next prev parent reply other threads:[~2008-08-07 13:30 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-06 15:20 Sergei Poselenov
2008-08-06 15:28 ` Daniel Jacobowitz
2008-08-06 15:45 ` Mark Kettenis
2008-08-06 15:51 ` Daniel Jacobowitz
2008-08-06 16:02 ` Paul Koning
2008-08-06 17:10 ` Joe Buck
2008-08-06 17:39 ` Paul Koning
2008-08-06 17:52 ` Joe Buck
2008-08-06 18:11 ` Paul Koning
2008-08-06 21:39 ` Andreas Schwab
2008-08-06 21:58 ` Joe Buck
2008-08-07 13:30 ` Paul Koning [this message]
2008-08-07 16:56 ` Joe Buck
2008-08-07 17:29 ` Paul Koning
2008-08-07 9:30 ` Sergei Poselenov
2008-08-07 13:44 ` Daniel Jacobowitz
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=18586.63614.111756.993754@gargle.gargle.HOWL \
--to=paul_koning@dell.com \
--cc=Joe.Buck@synopsys.COM \
--cc=drow@false.org \
--cc=gcc@sources.redhat.com \
--cc=gdb@sources.redhat.com \
--cc=mark.kettenis@xs4all.nl \
--cc=schwab@suse.de \
--cc=sposelenov@emcraft.com \
/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