Under Fedora 15/x64 i saw issue with setlocale() around mid-february-2011 interesting part from report ==9569== Conditional jump or move depends on uninitialised value(s) ==9569== at 0x3A45283D82: __GI___strcasecmp_l (/usr/src/debug////////glibc-2.13/string/../sysdeps/x86_64/strcmp.S:409) ==9569== by 0x3A4521FEB1: __gconv_open (/usr/src/debug/glibc-2.13/iconv/gconv_open.c:70) ==9569== by 0x3A4522D266: _nl_find_msg (/usr/src/debug/glibc-2.13/intl/dcigettext.c:974) ==9569== by 0x3A4522D9A7: __dcigettext (/usr/src/debug/glibc-2.13/intl/dcigettext.c:640) ==9569== by 0x3A4527FDC7: strerror_r (/usr/src/debug/glibc-2.13/string/_strerror.c:65) ==9569== by 0x3A4527FCCD: strerror (/usr/src/debug/glibc-2.13/string/strerror.c:33)
If run as LANG=ru_RU.utf-8 valgrind ./a.out then err present If run as LANG=C valgrind ./a.out then i saw no error Now F15/x64 has no such err. Dmitry 2011/11/26 John Reiser <[email protected]>: > On 11/25/2011 05:56 AM, Dominic Monroe wrote: >> I've been trying to run Valgrind on an application, and found a ridicolous >> amount of false positives. It was suggested to me I should email this list >> with errors. I identified the function setlocale to be "errorneous" > [snip] >> ==23068== Invalid read of size 4 >> ==23068== at 0x40C901B: ??? (in /lib/libc-2.14.1.so >> <http://libc-2.14.1.so>) >> ==23068== by 0x40771E8: ??? (in /lib/libc-2.14.1.so >> <http://libc-2.14.1.so>) >> ==23068== by 0x4076D33: setlocale (in /lib/libc-2.14.1.so >> <http://libc-2.14.1.so>) >> ==23068== by 0x8048400: main (val2.c:5) >> ==23068== Address 0x41d002c is 4 bytes inside a block of size 5 alloc'd >> ==23068== at 0x402A018: malloc (in >> /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) >> ==23068== by 0x407E42B: ??? (in /lib/libc-2.14.1.so >> <http://libc-2.14.1.so>) >> ==23068== by 0x40784A4: ??? (in /lib/libc-2.14.1.so >> <http://libc-2.14.1.so>) >> ==23068== by 0x40771E8: ??? (in /lib/libc-2.14.1.so >> <http://libc-2.14.1.so>) >> ==23068== by 0x4076D33: setlocale (in /lib/libc-2.14.1.so >> <http://libc-2.14.1.so>) >> ==23068== by 0x8048400: main (val2.c:5) > [snip] >> I am using Arch Linux (Which I think is in the above log, but regardless) >> I'm not sure if I have done something wrong, or there's an issue with the >> Arch package. But either way I am stuck.Thanks for any help you guys can >> provide to me. > > Using a fresh installation, I cannot reproduce those problems: > > + pacman --query gcc glibc valgrind > gcc 4.6.2-1 > glibc 2.14-4 > valgrind 3.7.0-1 > + uname -a > Linux myhost 3.0-ARCH #1 SMP PREEMPT Wed Aug 17 20:24:07 UTC 2011 i686 > Intel(R) Pentium(R) 4 CPU 1.60GHz GenuineIntel GNU/Linux > + cat setlocale.c > #include <stdio.h> > #include <locale.h> > > main() > { > setlocale(LC_ALL, ""); > } > + gcc -g -o setlocale setlocale.c > + valgrind --leak-check=yes -v --track-origins=yes ./setlocale > ==936== Memcheck, a memory error detector > ==936== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al. > ==936== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info > ==936== Command: ./setlocale > ==936== > --936-- Valgrind options: > --936-- --leak-check=yes > --936-- -v > --936-- --track-origins=yes > --936-- Contents of /proc/version: > --936-- Linux version 3.0-ARCH (tobias@T-POWA-LX) (gcc version 4.6.1 (GCC) > ) #1 SMP PREEMPT Wed Aug 17 20:24:07 UTC 2011 > --936-- Arch and hwcaps: X86, x86-sse1-sse2 > --936-- Page sizes: currently 4096, max supported 4096 > --936-- Valgrind library directory: /usr/lib/valgrind > --936-- Reading syms from /lib/ld-2.14.so (0x4000000) > --936-- Reading syms from /home/jreiser/setlocale (0x8048000) > --936-- Reading syms from /usr/lib/valgrind/memcheck-x86-linux (0x38000000) > --936-- object doesn't have a symbol table > --936-- object doesn't have a dynamic symbol table > --936-- Reading suppressions file: /usr/lib/valgrind/default.supp > ==936== embedded gdbserver: reading from > /tmp/vgdb-pipe-from-vgdb-to-936-by-jreiser-on-??? > ==936== embedded gdbserver: writing to > /tmp/vgdb-pipe-to-vgdb-from-936-by-jreiser-on-??? > ==936== embedded gdbserver: shared mem > /tmp/vgdb-pipe-shared-mem-vgdb-936-by-jreiser-on-??? > ==936== > ==936== TO CONTROL THIS PROCESS USING vgdb (which you probably > ==936== don't want to do, unless you know exactly what you're doing, > ==936== or are doing some strange experiment): > ==936== /usr/lib/valgrind/../../bin/vgdb --pid=936 ...command... > ==936== > ==936== TO DEBUG THIS PROCESS USING GDB: start GDB like this > ==936== /path/to/gdb ./setlocale > ==936== and then give GDB the following command > ==936== target remote | /usr/lib/valgrind/../../bin/vgdb --pid=936 > ==936== --pid is optional if only one valgrind process is running > ==936== > --936-- REDIR: 0x40176c0 (strlen) redirected to 0x38056b04 (???) > --936-- REDIR: 0x4017500 (index) redirected to 0x38056adf (???) > --936-- Reading syms from /usr/lib/valgrind/vgpreload_core-x86-linux.so > (0x4023000) > --936-- object doesn't have a symbol table > --936-- Reading syms from /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so > (0x4026000) > --936-- object doesn't have a symbol table > --936-- Reading syms from /lib/libc-2.14.so (0x4037000) > --936-- object doesn't have a symbol table > --936-- REDIR: 0x40ad6c0 (rindex) redirected to 0x402a320 (rindex) > --936-- REDIR: 0x40acc80 (strcmp) redirected to 0x402b430 (strcmp) > --936-- REDIR: 0x40ad2c0 (strlen) redirected to 0x402a800 (strlen) > --936-- REDIR: 0x40ad4e0 (strncmp) redirected to 0x402aca0 (strncmp) > --936-- REDIR: 0x40acb10 (index) redirected to 0x402a430 (index) > --936-- REDIR: 0x40b1980 (strchrnul) redirected to 0x402cd90 (strchrnul) > --936-- REDIR: 0x40a9460 (malloc) redirected to 0x4029fb0 (malloc) > --936-- REDIR: 0x40aed70 (mempcpy) redirected to 0x402cec0 (mempcpy) > --936-- REDIR: 0x40af1d0 (memcpy) redirected to 0x402bae0 (memcpy) > --936-- REDIR: 0x40a9910 (free) redirected to 0x40291b0 (free) > ==936== > ==936== HEAP SUMMARY: > ==936== in use at exit: 0 bytes in 0 blocks > ==936== total heap usage: 28 allocs, 28 frees, 1,953 bytes allocated > ==936== > ==936== All heap blocks were freed -- no leaks are possible > ==936== > ==936== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 13 from 8) > --936-- > --936-- used_suppression: 13 U1004-ARM-_dl_relocate_object > ==936== > ==936== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 13 from 8) > > -- > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure > contains a definitive record of customers, application performance, > security threats, fraudulent activity, and more. Splunk takes this > data and makes sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-novd2d > _______________________________________________ > Valgrind-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/valgrind-users > ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-novd2d _______________________________________________ Valgrind-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/valgrind-users
