Re: Problem reading corefiles on ARM

Paul Koning
2008-08-06T18:11:23Z

>>>>> "Joe" == Joe Buck <Joe.Buck@synopsys.COM> writes:

Joe> I wrote: There are several effects from "noreturn". We would
Joe> want some of these effects for "abort", but not others, to get
Joe> debuggable code without degrading compile-time warnings.

Joe> On Wed, Aug 06, 2008 at 01:37:51PM -0400, Paul Koning wrote:
>> So the issue is that two unrelated features are currently combined
>> in a single attribute:
>>
>> 1. This function doesn't return, do the right thing with warnings
>> in the caller of this function.
>>
>> 2. Don't bother saving registers when calling this function
>> because it won't return so the registers aren't needed afterwards.
>>
>> The issue is that #2 doesn't apply to "abort" because the
>> registers ARE needed afterwards -- at debug time.

Joe> But not necessarily all of them (depending on platform). That
Joe> is, the caller-saved registers don't have to be saved because
Joe> the function isn't returning, but there has to be enough of a
Joe> stack frame so that a debugger can set a breakpoint on the abort
Joe> and determine who the caller was.

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.

paul