Makes sense to me.

-Filip


> On Feb 8, 2016, at 12:33 PM, Mark Lam <mark....@apple.com> wrote:
> 
> A store to 0xbbadbeef will still require the use of a register (at least on 
> ARM).  The breakpoint instruction uses no registers (hence, we don’t have to 
> choose which register to sacrifice).  We can still identify the crash as an 
> assertion by looking fro the EXC_BREAKPOINT instead of the 0xbbadbeef address.
> 
> Mark
> 
> 
>> On Feb 8, 2016, at 12:14 PM, Filip Pizlo <fpi...@apple.com> wrote:
>> 
>> I like this idea.  I’ve wanted this for a while.
>> 
>> Can you explain why your approach doesn’t inline a store to 0xbbadbeef, so 
>> that this aspect of the current behavior is preserved?
>> 
>> -Filip
>> 
>> 
>>> On Feb 8, 2016, at 11:55 AM, Mark Lam <mark....@apple.com> wrote:
>>> 
>>> Hi WebKit folks,
>>> 
>>> For non-debug OS(DARWIN) builds, I would like to change WTFCrash()’s 
>>> implementation into an inlined function that has a single inlined asm 
>>> statement that issues a breakpoint trap.  The intent is to crash directly 
>>> in the caller’s frame and preserve the register values at the time of the 
>>> crash.  As a result, for non-debug OS(DARWIN) builds, crashes due to failed 
>>> RELEASE_ASSERTs will now show up in crash reports as crashing due to 
>>> EXC_BREAKPOINT (SIGTRAP) instead of a EXC_BAD_ACCESS (SIGSEGV) on address 
>>> 0xbbadbeef.
>>> 
>>> This is in contrast to the current implementation where WTFCrash() is a 
>>> function that calls a lot of handler / callback functions before actually 
>>> crashing.  As a result, by the time it crashes, the caller’s register 
>>> values has most likely been trashed by all the work that the WTFCrash and 
>>> the handlers / callbacks do.  The register values in the captured crash 
>>> report will, therefore, no longer be useful for crash site analysis. 
>>> 
>>> You can find the patch for this change at 
>>> https://bugs.webkit.org/show_bug.cgi?id=153996.  This change will only be 
>>> applied for non-debug OS(DARWIN) builds for now.  I’m leaving all other 
>>> build build configurations with the existing WTFCrash() implementation and 
>>> behavior.
>>> 
>>> Does anyone have any opinion / feedback on this change?
>>> 
>>> Thanks.
>>> 
>>> Regards,
>>> Mark
>>> 
>>> _______________________________________________
>>> webkit-dev mailing list
>>> webkit-dev@lists.webkit.org
>>> https://lists.webkit.org/mailman/listinfo/webkit-dev
>> 
> 

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to