[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-hackers] segfault backtrace help needed

From: Jörg F . Wittenberger
Subject: [Chicken-hackers] segfault backtrace help needed
Date: 11 Jan 2012 21:33:44 +0100

Hi all,

I have problems tracking down a segfault.

Happend from almost never (AMD64, most traffic - once a week or so)
to several times an hour on Sheeva Plug (little activity, little load).

Is there any known way, how I could extract more details?

So far
I did a build with DEBUGBUILD=1 and compiled my code with debugging
symbols too.  Gdb shows usually this:

Reading symbols from /usr/lib/askemos/askemos.bin...done.
[New Thread 32620]
[New Thread 32621]
[New Thread 32622]
[New Thread 32618]
[New Thread 32619]
Reading symbols from /usr/lib/
Loaded symbols for /usr/lib/
Program terminated with signal 11, Segmentation fault.
#0  0x40541278 in memcpy () from /lib/
(gdb) bt
#0  0x40541278 in memcpy () from /lib/
#1  0x20202020 in ?? ()
#2  0x20202020 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Now I'm used to the fact that the backtraces are not too helpful
with chicken, but I'm also used to get at least on f_<number>
entry, usually helpful.  Not so here.
(BTW: before I did the debug build, I always got something
like "#1 0xNNNN in ?? () from libchicken". This location hint disappeared.)

Except - and that makes the story even more dubious to me -
once the trace was different:

#0  0x40642278 in memcpy () from /lib/
#1  0x402ea364 in f_12087 (c=<value optimized out>, t0=1148540020, t1=0)
   at library.c:29017
#2  0x402ea364 in f_12087 (c=<value optimized out>, t0=1148540020, t1=0)
   at library.c:29017

Whereby library.c:29017 is just here: /* k12085 in ##sys#lambda-info->string in k11304 in k11126 in k11123 in k11120 in k11117 in k11113 in k11109 in k10447 in k10444 in k10441 in k10438 in k10435 in k10432 in k10429 in k10426 in k10423 in k10420 in k10417 in k10414 in k10252 in k6055 */ static void C_ccall f_12087(C_word c,C_word t0,C_word t1){ C_word tmp; C_word t2; C_word t3; C_word *a; t2=C_copy_memory(t1,((C_word*)t0)[2],((C_word*)t0)[3]); t3=((C_word*)t0)[4]; /* library.c:29017 */ ((C_proc2)(void*)(*((C_word*)t3+1)))(2,t3,t1);}

(the last line)

Makes me wonder, given that I compiled at least my code with lambdainfo
disabled.  I can't see how lambda-info->string should ever be called.

kinda clueless feeling

reply via email to

[Prev in Thread] Current Thread [Next in Thread]