[Vm-dev] Re: Cog on Linux

Eliot Miranda eliot.miranda at gmail.com
Thu Jul 22 20:49:13 UTC 2010


Hi Paul,

On Thu, Jul 22, 2010 at 1:39 PM, Paul DeBruicker <pdebruic at gmail.com> wrote:

>
>
>> Have you updated to r2244 or better?  As I hoped in the log:
>>
>> svn log platforms/unix/vm/sqUnixHeartbeat.c
>> r2244 | eliot | 2010-07-20 11:20:26 -0700 (Tue, 20 Jul 2010) | 3 lines
>>
>> Fix heartbeat clock log (-ve % +ve =>  -ve bounds violation).
>> This will hopefully fix crashes in the heartbeat under linux.
>>
>> If you're already at 2244 then what's the backtrace in gdb, registers etc?
>>
>>
>>
> Yes I think I'm at r2247. svn update finds no changes for platforms, src,
> and unixbuild.
>
> You'll have to be explicit for what you want from gdb as I'm a complete
> novice.
>

OK, frst create .gdbinit in your home directory with the following contents
---------8<------- ~/.gdbinit ---------8<-------
set history save on
handle SIGUSR1 nostop noprint noignore
handle SIGUSR2 nostop noprint noignore
handle SIGALRM nostop noprint noignore
handle SIGPOLL nostop noprint noignore
handle SIGPIPE nostop noprint noignore
---------------------------8<---------------------

then run as usual and when the segfault happens type
(gdb) where
(gdb) info registers
(gdb) x/5i $eip
(gdb) info threads

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.

cheers
Eliot


> Here's the gdb session:
>
> paul at paul-laptop:~/src/squeakvm/unixbuild/bld$ gdb ./squeak
> GNU gdb (GDB) 7.1-ubuntu
> Copyright (C) 2010 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <
> http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-linux-gnu".
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>...
> Reading symbols from /home/paul/src/squeakvm/unixbuild/bld/squeak...done.
>
> (gdb) run Pharo-1.1-11409-rc4dev10.07.2.image
> Starting program: /home/paul/src/squeakvm/unixbuild/bld/squeak
> Pharo-1.1-11409-rc4dev10.07.2.image
> warning: the debug information found in "/lib/ld-2.11.1.so" does not match
> "/lib/ld-linux.so.2" (CRC mismatch).
>
> [Thread debugging using libthread_db enabled]
> [New Thread 0xb7adbb70 (LWP 27073)]
>
> Program received signal SIGUSR2, User defined signal 2.
> [Switching to Thread 0xb7adbb70 (LWP 27073)]
> heartbeat_handler (sig=14, sig_info=0x63, context=0x0)
>    at /home/paul/src/squeakvm/platforms/unix/vm/sqUnixHeartbeat.c:461
> 461     {
>
> (gdb) bt
> #0  heartbeat_handler (sig=14, sig_info=0x63, context=0x0)
>    at /home/paul/src/squeakvm/platforms/unix/vm/sqUnixHeartbeat.c:461
> #1 <signal handler called>
> #2  0xf7fdf430 in __kernel_vsyscall ()
> #3  0xf7fabb16 in nanosleep () from /lib32/libpthread.so.0
> #4  0x0805fa38 in tickerSleepCycle (ignored=0x0)
>    at /home/paul/src/squeakvm/platforms/unix/vm/sqUnixHeartbeat.c:375
> #5  0xf7fa396e in start_thread () from /lib32/libpthread.so.0
> #6  0xf7ed6b5e in clone () from /lib32/libc.so.6
>
> (gdb) info registers
> eax            0xe      14
> ecx            0x0      0
> edx            0x0      0
> ebx            0xb7adb388       -1213353080
> esp            0xb7adadfc       0xb7adadfc
> ebp            0xb7adb398       0xb7adb398
> esi            0xb7adbb70       -1213351056
> edi            0x3d0f00 4001536
> eip            0x805f6d0        0x805f6d0 <heartbeat_handler>
> eflags         0x296    [ PF AF SF IF ]
> cs             0x23     35
> ss             0x2b     43
> ds             0x2b     43
> es             0x2b     43
> fs             0x0      0
> gs             0x63     99
> (gdb)
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20100722/8778fb5b/attachment.htm


More information about the Vm-dev mailing list