|
From: cleca <cle...@un...> - 2013-08-16 15:33:20
|
I am receiving numerous very confusing warnings by valgrind on a tiny initial
execution fragment of a large program.
The program fragment is as follows:
int main(int argc, const char* argv[]) {
openlog (NAME_OF_PROGRAM, LOG_NDELAY , LOG_USER);
syslog (LOG_NOTICE, "Program is starting up at process id %d",
getpid());
exit(1);
...
}
and valgrind presents many complaints (see below) for syslog. The main
function is part of a large c++ program, to which several libraries get
linked. On the other hand, if I run valgrind on a program consisting ONLY of
the above function, everything is fine.
I tried to pinpoint the responsible component, but since the code base is
rather large I am getting more and more desperate and see no strategy any
more for doing this...
== PASTE of parts of the complaints ==
Invalid read of size 8
==19525== at 0x6E6E2CA: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86416: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E88052: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86C87: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86DA8: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EBFA8C: __vsyslog_chk (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EC00BF: syslog (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x5EB1D2: main (kademlia.cpp:211)
==19525== Address 0x757d650 is 16 bytes inside a block of size 20 alloc'd
==19525== at 0x4C25D8C: malloc (vg_replace_malloc.c:270)
==19525== by 0x6E86431: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E88052: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86C87: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86DA8: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EBFA8C: __vsyslog_chk (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EC00BF: syslog (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x5EB1D2: main (kademlia.cpp:211)
==19525==
==19525== Invalid read of size 8
==19525== at 0x6E6E2D3: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86416: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E88052: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86C87: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86DA8: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EBFA8C: __vsyslog_chk (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EC00BF: syslog (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x5EB1D2: main (kademlia.cpp:211)
==19525== Address 0x757d658 is 4 bytes after a block of size 20 alloc'd
==19525== at 0x4C25D8C: malloc (vg_replace_malloc.c:270)
==19525== by 0x6E86431: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E88052: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86C87: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86DA8: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EBFA8C: __vsyslog_chk (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EC00BF: syslog (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x5EB1D2: main (kademlia.cpp:211)
==19525==
==19525== Conditional jump or move depends on uninitialised value(s)
==19525== at 0x6E6E2F2: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86416: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E88052: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86C87: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86DA8: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EBFA8C: __vsyslog_chk (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EC00BF: syslog (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x5EB1D2: main (kademlia.cpp:211)
==19525== Uninitialised value was created by a heap allocation
==19525== at 0x4C25D8C: malloc (vg_replace_malloc.c:270)
==19525== by 0x6E87B86: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86C87: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86DA8: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EBFA8C: __vsyslog_chk (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EC00BF: syslog (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x5EB1D2: main (kademlia.cpp:211)
==19525==
==19525== Use of uninitialised value of size 8
==19525== at 0x6E6F6C4: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86416: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E88052: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86C87: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86DA8: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EBFA8C: __vsyslog_chk (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EC00BF: syslog (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x5EB1D2: main (kademlia.cpp:211)
==19525== Uninitialised value was created by a heap allocation
==19525== at 0x4C25D8C: malloc (vg_replace_malloc.c:270)
==19525== by 0x6E87B86: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86C87: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86DA8: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EBFA8C: __vsyslog_chk (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EC00BF: syslog (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x5EB1D2: main (kademlia.cpp:211)
==19525==
==19525== Use of uninitialised value of size 8
==19525== at 0x6E6F6C8: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86416: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E88052: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86C87: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86DA8: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EBFA8C: __vsyslog_chk (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EC00BF: syslog (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x5EB1D2: main (kademlia.cpp:211)
==19525== Uninitialised value was created by a heap allocation
==19525== at 0x4C25D8C: malloc (vg_replace_malloc.c:270)
==19525== by 0x6E87B86: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86C87: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86DA8: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EBFA8C: __vsyslog_chk (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EC00BF: syslog (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x5EB1D2: main (kademlia.cpp:211)
==19525==
==19525== Invalid read of size 8
==19525== at 0x6E6ECA4: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86416: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E88052: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86C87: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86DA8: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EBFA8C: __vsyslog_chk (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EC00BF: syslog (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x5EB1D2: main (kademlia.cpp:211)
==19525== Address 0x757d6b0 is 16 bytes inside a block of size 21 alloc'd
==19525== at 0x4C25D8C: malloc (vg_replace_malloc.c:270)
==19525== by 0x6E86431: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E88052: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86C87: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86DA8: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EBFA8C: __vsyslog_chk (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EC00BF: syslog (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x5EB1D2: main (kademlia.cpp:211)
==19525==
==19525== Conditional jump or move depends on uninitialised value(s)
==19525== at 0x6E6FD19: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E863E2: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E88052: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86C87: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86DA8: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EBFA8C: __vsyslog_chk (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EC00BF: syslog (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x5EB1D2: main (kademlia.cpp:211)
==19525== Uninitialised value was created by a heap allocation
==19525== at 0x4C25D8C: malloc (vg_replace_malloc.c:270)
==19525== by 0x6E87B86: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86C87: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86DA8: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EBFA8C: __vsyslog_chk (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EC00BF: syslog (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x5EB1D2: main (kademlia.cpp:211)
==19525==
==19525== Conditional jump or move depends on uninitialised value(s)
==19525== at 0x6E86402: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E88052: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86C87: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86DA8: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EBFA8C: __vsyslog_chk (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EC00BF: syslog (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x5EB1D2: main (kademlia.cpp:211)
==19525== Uninitialised value was created by a heap allocation
==19525== at 0x4C25D8C: malloc (vg_replace_malloc.c:270)
==19525== by 0x6E87B86: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86C87: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6E86DA8: ??? (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EBFA8C: __vsyslog_chk (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x6EC00BF: syslog (in
/home/cap/workspace/kademlia2/libs/libc.so.6)
==19525== by 0x5EB1D2: main (kademlia.cpp:211)
--
View this message in context: http://valgrind.10908.n7.nabble.com/DESPERATE-Receiving-confusing-warnings-during-very-short-execution-phase-tp46345.html
Sent from the Valgrind - Users mailing list archive at Nabble.com.
|
|
From: Patrick J. L. <lop...@gm...> - 2013-08-16 16:42:24
|
On Fri, Aug 16, 2013 at 8:33 AM, cleca <cle...@un...> wrote: > == PASTE of parts of the complaints == > Invalid read of size 8 > ==19525== at 0x6E6E2CA: ??? (in /home/cap/workspace/kademlia2/libs/libc.so.6) You will get better backtraces if you install the "glibc-debuginfo" package. (Assuming you are using a Red Hat derivative.) Also, compile your application with "-g". You can also try "gdb <my_program>" and then "x/10i 0x6E6E2CA" to see what the faulting instruction actually is. If you are lucky, it will be an SSE instruction and you can fix the warnings by using the latest Valgrind from Subversion and "--partial-loads-ok=yes". - Pat |
|
From: cleca <cle...@un...> - 2013-08-16 20:29:00
|
On Fri, Aug 16, 2013 at 8:33 AM, cleca <clemens.cap@> wrote: > == PASTE of parts of the complaints == > Invalid read of size 8 > ==19525== at 0x6E6E2CA: ??? (in > /home/cap/workspace/kademlia2/libs/libc.so.6) > You will get better backtraces if you install the "glibc-debuginfo" > package. (Assuming you are using a Red Hat derivative.) Also, compile > your application with "-g". Actually I *did* compile with -g. But your remark had me check the line above once more...which made me more suspicious and I replaced (my) version of the libc by the system one (with which valgrind had been compiled). And VOILA: Problem solved. All messages of valgrind make completely sense now, whereas they looked absolutely chinese to be before. Probably the mismatch of C-libraries threw valgrind under the bus. Interesting to see that valgrind nevertheless was able to produce messages (which, however, did not make sene to me). Would be nice if valgrind could detect/warn about that. THANK YOU very much for you help, it saved my day - I ws really a bit desperate already. > You can also try "gdb <my_program>" and then "x/10i 0x6E6E2CA" to see > what the faulting instruction actually is. If you are lucky, it will > be an SSE instruction and you can fix the warnings by using the latest > Valgrind from Subversion and "--partial-loads-ok=yes". Didn't know this trick and it probably will save my weekend - since I *am* actually using some SSE-related code fragments which still are awaiting valgrind-cleanup later today :-) THANX. -- View this message in context: http://valgrind.10908.n7.nabble.com/DESPERATE-Receiving-confusing-warnings-during-very-short-execution-phase-tp46345p46352.html Sent from the Valgrind - Users mailing list archive at Nabble.com. |