Hi Paul,<br><br><div class="gmail_quote">On Thu, Jul 22, 2010 at 1:39 PM, Paul DeBruicker <span dir="ltr">&lt;<a href="mailto:pdebruic@gmail.com">pdebruic@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Have you updated to r2244 or better?  As I hoped in the log:<br>
<br>
svn log platforms/unix/vm/sqUnixHeartbeat.c<br>
r2244 | eliot | 2010-07-20 11:20:26 -0700 (Tue, 20 Jul 2010) | 3 lines<br>
<br>
Fix heartbeat clock log (-ve % +ve =&gt;  -ve bounds violation).<br>
This will hopefully fix crashes in the heartbeat under linux.<br>
<br>
If you&#39;re already at 2244 then what&#39;s the backtrace in gdb, registers etc?<br>
<br>
   <br>
</blockquote></div>
Yes I think I&#39;m at r2247. svn update finds no changes for platforms, src, and unixbuild.<br>
<br>
You&#39;ll have to be explicit for what you want from gdb as I&#39;m a complete novice.<br></blockquote><div><br></div><div>OK, frst create .gdbinit in your home directory with the following contents</div><div>---------8&lt;------- ~/.gdbinit ---------8&lt;-------</div>
<div>set history save on</div><div>handle SIGUSR1 nostop noprint noignore</div><div>handle SIGUSR2 nostop noprint noignore</div><div>handle SIGALRM nostop noprint noignore</div><div>handle SIGPOLL nostop noprint noignore</div>
<div>handle SIGPIPE nostop noprint noignore</div><div>---------------------------8&lt;---------------------</div><div><br></div><div>then run as usual and when the segfault happens type</div><div>(gdb) where</div><div>(gdb) info registers</div>
<div>(gdb) x/5i $eip</div><div>(gdb) info threads</div><div><br></div><div>and post the results.  where gives a stack backtrace.  info registers prints the registers.  x/5i $eip prints the faulting instruction and the 4 following it.  If its very close to the start of the function containing the segfault you can also say disass func and get the code surroundig the fault.  info threads prints how many threads there are.  If you want you can say thread N and then where to get the stack backtrace for each thread.</div>
<div><br></div><div>cheers</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>
Here&#39;s the gdb session:<br>
<br>
paul@paul-laptop:~/src/squeakvm/unixbuild/bld$ gdb ./squeak<br>
GNU gdb (GDB) 7.1-ubuntu<br>
Copyright (C) 2010 Free Software Foundation, Inc.<br>
License GPLv3+: GNU GPL version 3 or later &lt;<a href="http://gnu.org/licenses/gpl.html" target="_blank">http://gnu.org/licenses/gpl.html</a>&gt;<br>
This is free software: you are free to change and redistribute it.<br>
There is NO WARRANTY, to the extent permitted by law.  Type &quot;show copying&quot;<br>
and &quot;show warranty&quot; for details.<br>
This GDB was configured as &quot;x86_64-linux-gnu&quot;.<br>
For bug reporting instructions, please see:<br>
&lt;<a href="http://www.gnu.org/software/gdb/bugs/" target="_blank">http://www.gnu.org/software/gdb/bugs/</a>&gt;...<br>
Reading symbols from /home/paul/src/squeakvm/unixbuild/bld/squeak...done.<br>
<br>
(gdb) run Pharo-1.1-11409-rc4dev10.07.2.image<br>
Starting program: /home/paul/src/squeakvm/unixbuild/bld/squeak Pharo-1.1-11409-rc4dev10.07.2.image<br>
warning: the debug information found in &quot;/lib/<a href="http://ld-2.11.1.so" target="_blank">ld-2.11.1.so</a>&quot; does not match &quot;/lib/ld-linux.so.2&quot; (CRC mismatch).<br>
<br>
[Thread debugging using libthread_db enabled]<br>
[New Thread 0xb7adbb70 (LWP 27073)]<br>
<br>
Program received signal SIGUSR2, User defined signal 2.<br>
[Switching to Thread 0xb7adbb70 (LWP 27073)]<br>
heartbeat_handler (sig=14, sig_info=0x63, context=0x0)<br>
    at /home/paul/src/squeakvm/platforms/unix/vm/sqUnixHeartbeat.c:461<br>
461     {<br>
<br>
(gdb) bt<br>
#0  heartbeat_handler (sig=14, sig_info=0x63, context=0x0)<br>
    at /home/paul/src/squeakvm/platforms/unix/vm/sqUnixHeartbeat.c:461<br>
#1 &lt;signal handler called&gt;<br>
#2  0xf7fdf430 in __kernel_vsyscall ()<br>
#3  0xf7fabb16 in nanosleep () from /lib32/libpthread.so.0<br>
#4  0x0805fa38 in tickerSleepCycle (ignored=0x0)<br>
    at /home/paul/src/squeakvm/platforms/unix/vm/sqUnixHeartbeat.c:375<br>
#5  0xf7fa396e in start_thread () from /lib32/libpthread.so.0<br>
#6  0xf7ed6b5e in clone () from /lib32/libc.so.6<br>
<br>
(gdb) info registers<br>
eax            0xe      14<br>
ecx            0x0      0<br>
edx            0x0      0<br>
ebx            0xb7adb388       -1213353080<br>
esp            0xb7adadfc       0xb7adadfc<br>
ebp            0xb7adb398       0xb7adb398<br>
esi            0xb7adbb70       -1213351056<br>
edi            0x3d0f00 4001536<br>
eip            0x805f6d0        0x805f6d0 &lt;heartbeat_handler&gt;<br>
eflags         0x296    [ PF AF SF IF ]<br>
cs             0x23     35<br>
ss             0x2b     43<br>
ds             0x2b     43<br>
es             0x2b     43<br>
fs             0x0      0<br>
gs             0x63     99<br>
(gdb)<br>
<br>
<br>
</blockquote></div><br>