core dump in cvsup caused by _once()?
Gary Jennejohn
gary.jennejohn at freenet.de
Wed Dec 2 11:23:49 UTC 2009
On Tue, 1 Dec 2009 10:09:59 -0500
John Baldwin <jhb at freebsd.org> wrote:
[snip old gdb stuff]
> Can you do 'x/i $rip'? Also, if you could rebuild libc with debug symbols
> that could be helpful (just cd /usr/src/lib/libc; make clean; make
> DEBUG_FLAGS=-g install).
>
OK, here it is:
Core was generated by `cvsup'.
Program terminated with signal 4, Illegal instruction.
Reading symbols from /lib/libz.so.5...(no debugging symbols found)...done.
Loaded symbols for /lib/libz.so.5
Reading symbols from /lib/libm.so.5...(no debugging symbols found)...done.
Loaded symbols for /lib/libm.so.5
Reading symbols from /lib/libc.so.7...done.
Loaded symbols for /lib/libc.so.7
Reading symbols from /libexec/ld-elf.so.1...done.
Loaded symbols for /libexec/ld-elf.so.1
#0 0x00000008009ee0e7 in tzload (name=0xb <Address 0xb out of bounds>,
sp=0x76fe58, doextend=0) at /usr/src/lib/libc/stdtime/localtime.c:393
393 if (name != NULL && issetugid() != 0)
(gdb) bt
#0 0x00000008009ee0e7 in tzload (name=0xb <Address 0xb out of bounds>,
sp=0x76fe58, doextend=0) at /usr/src/lib/libc/stdtime/localtime.c:393
#1 0x00000008009edb8e in tzparse (name=0x765c6d "", sp=0x76fe58, lastditch=Variable "lastditch" is not available.
)
at /usr/src/lib/libc/stdtime/localtime.c:1002
#2 0x00000008009ee810 in tzload (name=Variable "name" is not available.
)
at /usr/src/lib/libc/stdtime/localtime.c:579
#3 0x00000008009eea28 in gmtload (sp=0x800b4d7a0)
at /usr/src/lib/libc/stdtime/localtime.c:1197
#4 0x00000008009f1d78 in _once (once_control=0x800b48fe0, init_routine=Variable "init_routine" is not available.
)
at /usr/src/lib/libc/gen/_once_stub.c:43
#5 0x00000008009ed80f in gmtsub (timep=0x774bb8, offset=0, tmp=0x800b52040)
at /usr/src/lib/libc/stdtime/localtime.c:1489
#6 0x00000008009ef097 in gmtime (timep=0x774bb8)
at /usr/src/lib/libc/stdtime/localtime.c:1550
#7 0x00000000004a643a in calloc ()
#8 0x000000000043aec7 in ?? ()
#9 0x0000000000448eaa in ?? ()
#10 0x0000000000409ece in ?? ()
#11 0x00000000004191a4 in ?? ()
#12 0x0000000000417cbe in ?? ()
#13 0x000000000041529f in ?? ()
#14 0x0000000000414d7a in ?? ()
#15 0x000000000049f980 in calloc ()
#16 0x000000000048fa3d in fnmatch ()
#17 0x00007fffffffd3e8 in ?? ()
#18 0x00007fffffffe950 in ?? ()
#19 0x00007fffffffea40 in ?? ()
#20 0x00007fffffffea28 in ?? ()
#21 0x0000000000000000 in ?? ()
#22 0x0000000000000000 in ?? ()
#23 0x00001fa00000037f in ?? ()
#24 0x0000000000000000 in ?? ()
#25 0x00000000006476c0 in ?? ()
#26 0x00000000006476c0 in ?? ()
#27 0x0000000000494d89 in fnmatch ()
Previous frame inner to this frame (corrupt stack?)
(gdb) x/i $rip
0x8009ee0e7 <tzload+55>: callq 0x80094959c <_init+6180>
(gdb) up
#1 0x00000008009edb8e in tzparse (name=0x765c6d "", sp=0x76fe58, lastditch=Variable "lastditch" is not available.
)
at /usr/src/lib/libc/stdtime/localtime.c:1002
1002 load_result = tzload(TZDEFRULES, sp, FALSE);
(gdb) x/i $rip
0x8009edb8e <tzparse+238>: test %eax,%eax
(gdb) up
#2 0x00000008009ee810 in tzload (name=Variable "name" is not available.
)
at /usr/src/lib/libc/stdtime/localtime.c:579
579 result = tzparse(&u.buf[1], &ts, FALSE);
(gdb) x/i $rip
0x8009ee810 <tzload+1888>: test %eax,%eax
(gdb) up
#3 0x00000008009eea28 in gmtload (sp=0x800b4d7a0)
at /usr/src/lib/libc/stdtime/localtime.c:1197
1197 if (tzload(gmt, sp, TRUE) != 0)
(gdb) x/i $rip
0x8009eea28 <gmtload+24>: test %eax,%eax
(gdb) up
#4 0x00000008009f1d78 in _once (once_control=0x800b48fe0, init_routine=Variable "init_routine" is not available.
)
at /usr/src/lib/libc/gen/_once_stub.c:43
43 init_routine();
(gdb) x/i $rip
0x8009f1d78 <_once+24>: movl $0x1,(%rbx)
(gdb) up
#5 0x00000008009ed80f in gmtsub (timep=0x774bb8, offset=0, tmp=0x800b52040)
at /usr/src/lib/libc/stdtime/localtime.c:1489
1489 _once(&gmt_once, gmt_init);
(gdb) x/i $rip
0x8009ed80f <gmtsub+47>:
lea 1441674(%rip),%rdx # 0x800b4d7a0 <_nsyyout+44408>
(gdb) up
#6 0x00000008009ef097 in gmtime (timep=0x774bb8)
at /usr/src/lib/libc/stdtime/localtime.c:1550
1550 gmtsub(timep, 0L, &tm);
(gdb) x/i $rip
0x8009ef097 <gmtime+119>: jmp 0x8009ef070 <gmtime+80>
(gdb) up
#7 0x00000000004a643a in calloc ()
(gdb) x/i $rip
0x4a643a <calloc+42618>: mov %rax,0xffffffffffffff48(%rbp)
(gdb) frame 0
#0 0x00000008009ee0e7 in tzload (name=0xb <Address 0xb out of bounds>,
sp=0x76fe58, doextend=0) at /usr/src/lib/libc/stdtime/localtime.c:393
393 if (name != NULL && issetugid() != 0)
(gdb)
---
Gary Jennejohn
More information about the freebsd-current
mailing list