<html><body bgcolor="#FFFFFF"><div>I think you may even be able to use the iMac as your second monitor, I seem to have a tickle about that in the back of my mind.&nbsp;<br><br>Ken,<div>from my iPhone</div></div><div><br>On 2010-12-14, at 10:28, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt; wrote:<br><br></div><div></div><blockquote type="cite"><div><span></span></div></blockquote><blockquote type="cite"><div>Hi Mariano,<br><br><div class="gmail_quote">On Tue, Dec 14, 2010 at 3:10 AM, Mariano Martinez Peck <span dir="ltr">&lt;<a href="mailto:marianopeck@gmail.com"><a href="mailto:marianopeck@gmail.com">marianopeck@gmail.com</a></a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
&nbsp;<br>Hi folks. I have a crash in Cog, and I am not sure if it is "my fault" or not. Basically, it crashes while during the markAndTrace of an incrementalGC.<br></blockquote><div><br></div><div>The approach to take in cases like these is to try and construct a reproducible test case, ideally one that doesn't require user operations like selecting text and clicking mouse buttons, but one that can be run from the command line. &nbsp;I like to try and write them as doits that save an image and then evaluate an expression. &nbsp;e.g.</div>
<div><br></div><div>&nbsp;&nbsp; &nbsp;Smalltalk saveAs.</div><div>&nbsp;&nbsp; &nbsp;1/0&nbsp;</div><div><br></div><div>constructs an image that will reliably raise the divide-by-zero exception. &nbsp;So try and narrow down what causes the crash and then construct some doits. &nbsp;Once the doits seem to be reliably crashing teh system then try the Smalltalk saveAs. &nbsp;self doSomethingEvil approach.</div>
<div><br></div><div>Once you have a reproducible case the process of apportioning blame can commence ;) &nbsp;</div><div><br></div><div>HTH</div><div>Eliot</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>In my case, it always fails in the method #startObj , here:<br>
<br>startObj<br>&nbsp;&nbsp;&nbsp; "Start tracing the object 'child' and answer the next action. <br>&nbsp;&nbsp;&nbsp; &nbsp;The object may be anywhere in the middle of being swept <br>&nbsp;&nbsp;&nbsp; &nbsp;itself. See comment in markAndTrace for explanation of <br>

&nbsp;&nbsp;&nbsp; &nbsp;tracer state variables, and aComment for gory details."<br>&nbsp;&nbsp;&nbsp; | header lastFieldOffset |<br>&nbsp;&nbsp;&nbsp; &lt;inline: true&gt;<br>&nbsp;&nbsp;&nbsp; statMarkCountLocal := statMarkCountLocal + 1.<br><span style="background-color:rgb(255, 255, 51)">&nbsp;&nbsp;&nbsp; ((self oop: child isLessThan: youngStartLocal) "old object; skip it"</span><br style="background-color:rgb(255, 255, 51)">

<span style="background-color:rgb(255, 255, 51)">&nbsp;&nbsp;&nbsp; &nbsp;or: [((header := self longAt: child) bitAnd: MarkBit) ~= 0]) "already marked; skip it"</span><br style="background-color:rgb(255, 255, 51)"><br>when it does the if..<br>

<br>In C is:<br><br>if (((((usqInt) child)) &lt; (((usqInt) youngStartLocal)))<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;|| ((((header1 = longAt(child))) &amp; MarkBit) != 0)) {<br><br>child is 1887948912<br>youngStartLocal is 466502688<br><br>I attach a screenshot with the XCode GDB.<br>

<br>Thanks for any help in advance<br><br>Mariano<br>
<br></blockquote></div><br>
</div></blockquote></body></html>