<div dir="ltr">Do we get the dataLog output in a crash report? It seems useful to have at a minimum some &quot;reason&quot; enum which ends up in a register, so the crash report is somewhat helpful, like we do with JIT code.<div><br></div><div>At that point the release assert might as well capture __LINE__ and other things in a register, so that crash reporter picks it up.</div><div><br></div><div>Not that the dataLog isn&#39;t useful -- it is! -- just not as useful if it isn&#39;t in crash reports.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 22, 2017 at 11:09 AM, Filip Pizlo <span dir="ltr">&lt;<a href="mailto:fpizlo@apple.com" target="_blank">fpizlo@apple.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I disagree actually.  I&#39;ve lost countless hours to converting this:<br>
<br>
RELEASE_ASSERT(blah)<br>
<br>
into this:<br>
<br>
if (!blah) {<br>
   dataLog(&quot;Reason why I crashed&quot;);<br>
   RELEASE_ASSERT_NOT_REACHED();<br>
}<br>
<br>
Look in the code - you&#39;ll find lots of stuff like this.<br>
<br>
I don&#39;t think analyzing register state at crashes is more important than keeping our code sane.<br>
<span class="HOEnZb"><font color="#888888"><br>
-Filip<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
&gt; On Feb 21, 2017, at 5:56 PM, Mark Lam &lt;<a href="mailto:mark.lam@apple.com">mark.lam@apple.com</a>&gt; wrote:<br>
&gt;<br>
&gt; Oh yeah, I forgot about that.  I think the register state is more important for crash analysis, especially if we can make sure that the compiler does not aggregate the int3s.  I’ll explore alternatives.<br>
&gt;<br>
&gt;&gt; On Feb 21, 2017, at 5:54 PM, Saam barati &lt;<a href="mailto:sbarati@apple.com">sbarati@apple.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; I thought the main point of moving to SIGTRAP was to preserve register state?<br>
&gt;&gt;<br>
&gt;&gt; That said, there are probably places where we care more about the message than the registers.<br>
&gt;&gt;<br>
&gt;&gt; - Saam<br>
&gt;&gt;<br>
&gt;&gt;&gt; On Feb 21, 2017, at 5:43 PM, Mark Lam &lt;<a href="mailto:mark.lam@apple.com">mark.lam@apple.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Is there a reason why RELEASE_ASSERT (and friends) does not call WTFReportAssertionFailure() to report where the assertion occur?  Is this purely to save memory?  svn blame tells me that it has been this way since the introduction of RELEASE_ASSERT in r140577 many years ago.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Would anyone object to adding a call to WTFReportAssertionFailure() in RELEASE_ASSERT() like we do for ASSERT()?  One of the upside (side-effect) of adding this call is that it appears to stop the compiler from aggregating all the RELEASE_ASSERTS into a single code location, and this will help with post-mortem crash debugging.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Any thoughts?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Mark<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; ______________________________<wbr>_________________<br>
&gt;&gt;&gt; webkit-dev mailing list<br>
&gt;&gt;&gt; <a href="mailto:webkit-dev@lists.webkit.org">webkit-dev@lists.webkit.org</a><br>
&gt;&gt;&gt; <a href="https://lists.webkit.org/mailman/listinfo/webkit-dev" rel="noreferrer" target="_blank">https://lists.webkit.org/<wbr>mailman/listinfo/webkit-dev</a><br>
&gt;&gt;<br>
&gt;<br>
&gt; ______________________________<wbr>_________________<br>
&gt; webkit-dev mailing list<br>
&gt; <a href="mailto:webkit-dev@lists.webkit.org">webkit-dev@lists.webkit.org</a><br>
&gt; <a href="https://lists.webkit.org/mailman/listinfo/webkit-dev" rel="noreferrer" target="_blank">https://lists.webkit.org/<wbr>mailman/listinfo/webkit-dev</a><br>
<br>
______________________________<wbr>_________________<br>
webkit-dev mailing list<br>
<a href="mailto:webkit-dev@lists.webkit.org">webkit-dev@lists.webkit.org</a><br>
<a href="https://lists.webkit.org/mailman/listinfo/webkit-dev" rel="noreferrer" target="_blank">https://lists.webkit.org/<wbr>mailman/listinfo/webkit-dev</a><br>
</div></div></blockquote></div><br></div>