core dump in cvsup caused by _once()?
Sean C. Farley
scf at FreeBSD.org
Tue Dec 1 22:04:06 UTC 2009
On Tue, 1 Dec 2009, John Baldwin wrote:
> On Tuesday 01 December 2009 1:59:25 pm Sean C. Farley wrote:
>> On Tue, 1 Dec 2009, John Baldwin wrote:
>> Here is what I get from cvsupd:
>> GNU gdb 6.1.1 [FreeBSD]
>> Copyright 2004 Free Software Foundation, Inc.
>> GDB is free software, covered by the GNU General Public License, and you are
>> welcome to change it and/or distribute copies of it under certain conditions.
>> Type "show copying" to see the conditions.
>> There is absolutely no warranty for GDB. Type "show warranty" for details.
>> This GDB was configured as "amd64-marcel-freebsd"...
>> Core was generated by `cvsupd'.
>> Program terminated with signal 4, Illegal instruction.
>> Reading symbols from /lib/libz.so.5...done.
>> Loaded symbols for /lib/libz.so.5
>> Reading symbols from /lib/libm.so.5...done.
>> Loaded symbols for /lib/libm.so.5
>> Reading symbols from /usr/FreeBSD/branches/stable/8/src/lib/libc/libc.so.7...done.
>> Loaded symbols for /usr/FreeBSD/branches/stable/8/src/lib/libc/libc.so.7
>
> Wait, you are using a libc from stable/8 and getting this problem?
> The _once() stuff isn't in stable/8's libc, only in head.
I am running stable/8, and I can confirm that the source tree is
actually stable/8.
>> Reading symbols from /libexec/ld-elf.so.1...done.
>> Loaded symbols for /libexec/ld-elf.so.1
>> #0 0x00000008005c0d20 in _rtld_error () from /libexec/ld-elf.so.1
>> (gdb) where
>> #0 0x00000008005c0d20 in _rtld_error () from /libexec/ld-elf.so.1
>> #1 0x00000008005c156b in dladdr () from /libexec/ld-elf.so.1
>> #2 0x00000008005c1643 in dladdr () from /libexec/ld-elf.so.1
>> #3 0x00000008005be7bd in ?? () from /libexec/ld-elf.so.1
>> #4 0x0000000000816ed8 in ?? ()
>> #5 0x0000000000000000 in ?? ()
>> #6 0x0000000000000006 in ?? ()
>> #7 0x0000000000000043 in ?? ()
>> #8 0x000000000072aba8 in ?? ()
>> #9 0x0000000800a368e1 in _nsyycheck () from /usr/FreeBSD/branches/stable/8/src/lib/libc/libc.so.7
>> #10 0x000000000072abbb in ?? ()
>> #11 0x0000000000008000 in ?? ()
>> #12 0x000000000072abbe in ?? ()
>> #13 0x0000000000000216 in ?? ()
>> #14 0x0000000000000000 in ?? ()
>> #15 0x00000008005ed600 in ?? ()
>> #16 0x0000000000000161 in ?? ()
>> #17 0x0000000800a09049 in tzload (name=0x800a368e1 "posixrules", sp=0x7353b8, doextend=0) at /usr/FreeBSD/branches/stable/8/src/lib/libc/stdtime/localtime.c:422
>
> This is a call to strcat() in my sources here. Can you pop up to this
> frame and do 'list'?
The strcat() puzzled me too. I do have very few changes in the tree, but they
are not related to this.
(gdb) frame 17
#17 0x0000000800a09049 in tzload (name=0x800a368e1 "posixrules", sp=0x7353b8, doextend=0) at /usr/FreeBSD/branches/stable/8/src/lib/libc/stdtime/localtime.c:422
422 (void) strcat(fullname, name);
(gdb) l
417 return -1;
418 if ((strlen(p) + 1 + strlen(name) + 1) >= sizeof fullname)
419 return -1;
420 (void) strcpy(fullname, p);
421 (void) strcat(fullname, "/");
422 (void) strcat(fullname, name);
423 /*
424 ** Set doaccess if '.' (as in "../") shows up in name.
425 */
426 if (strchr(name, '.') != NULL)
Sean
--
scf at FreeBSD.org
More information about the freebsd-current
mailing list