|
From: Guitou - <gc...@ho...> - 2012-12-11 14:28:03
|
Hi all, I am using Valgrind on my soft which use avis client lirary. When I start Valgrind : valgrind --leak-check=yes MySoftName MyArgs I have an error on the first access of avis (Error sending message AvisMOM::send : 10004 - Interrupted system call) But all is fine when I don't use Valgrind.. I see that we can exclude some error of the list with supp file, but can we exclude valgrind process on certains lib ? (supp file is just a filter for the stdout display, isn't it? Tell me if I am wrong) I would like to use valgrind by telling it to not analyse access with lib avis (I don't know if is it possible) Thanks in advance for the help Guitou |
|
From: John R. <jr...@bi...> - 2012-12-11 15:42:19
|
> I am using Valgrind on my soft which use avis client lirary. > When I start Valgrind : > valgrind --leak-check=yes MySoftName MyArgs > I have an error on the first access of avis (Error sending message AvisMOM::send : 10004 - Interrupted system call) > But all is fine when I don't use Valgrind.. It is [just barely] possible that valgrind has a bug here. Try to create the smallest case where the problem happens, then file a bug report. See the "Bug Reports" link on www.valgrind.org. Also run under strace, or with valgrind argument "--trace-syscalls=yes"; then investigate the system calls at or near the 'send'. It is also somewhat likely that valgrind has discovered a bug in the 'avis' library, or in the way that MySoftName uses it, or due to the environment of "unexpected" slowness caused by all the checking the valgrind performs. If there is any timeout associated with 'send', then that timeout should be multiplied by a factor of 15 to 20. "#include <valgrind.h>" then "if (RUNNING_ON_VALGRIND) timeout *= 15.0;" Problems with "unexpected" delays are bugs in the original code which have not appeared before; they are not bugs in valgrind. Similarly, a syscall which returns with EINTR is a perfectly normal occurrence which library and application programmers often forget because usually it does not happen. > > I see that we can exclude some error of the list with supp file, but can we exclude valgrind process on certains lib ? > (supp file is just a filter for the stdout display, isn't it? Tell me if I am wrong) > I would like to use valgrind by telling it to not analyse access with lib avis (I don't know if is it possible) No, it is not possible. Valgrind(memcheck) must see every memory access in order to perform correct accounting of initialized/uninitialized. -- |