pthreaded program killed by sigsegv from time to time under load
Andriy Tkachuk
ant at emict.com
Sat Jun 4 06:07:04 PDT 2005
ok, using info threads i found:
128 Thread 128 (runnable) 0x08055b82 in pack (buf=0x2826b498, fmt=0xdff2 <Address 0xdff2 out of bounds>) at etip.c:618
then:
(gdb) thread 128
[Switching to thread 128 (Thread 128 (runnable))]#0 0x08055b82 in pack (buf=0x2826b498, fmt=0xdff2 <Address 0xdff2 out of bounds>) at etip.c:618
618 for (p = fmt; *p != '\0'; p++) {
(gdb) bt
#0 0x08055b82 in pack (buf=0x2826b498, fmt=0xdff2 <Address 0xdff2 out of bounds>) at etip.c:618
#1 0x281f97dc in ldexp () from /lib/libc.so.5
#2 0x00000000 in ?? ()
(gdb) bt full
#0 0x08055b82 in pack (buf=0x2826b498, fmt=0xdff2 <Address 0xdff2 out of bounds>) at etip.c:618
bp = (uchar *) 0x28265b0c "HJ\f"
s = 48698
args = 0x28265b0c "HJ\f"
p = 0x8e312c0 "юvн\b@"
l = 0
#1 0x281f97dc in ldexp () from /lib/libc.so.5
No symbol table info available.
#2 0x00000000 in ?? ()
No symbol table info available.
i use pack function this way only in my program:
int
pack(void *buf, const char *fmt, ...);
pack(buf_0 + 8, "sc", term_code, oper_code);
i.e. second argument is format specifyer like fmt in printf.
Actually this is the function from book of Kernighan & Pike
Practice of Programming. I just checked all the code - everywhere
threre are static strings.
btw. how to get the real backtrace? It is imposiible
that this function is called from ldexp()
thank you.
More information about the freebsd-threads
mailing list