Hi everyone,
First of all I want to thank everyone involved valgrind development,
this set of tools, especially memcheck and helgrind saved me a lot of
time. There were so many hard-to-find bugs in our code that were found
only thanks to these tools.
Now to the question: I've been using memcheck and helgrind for almost a
year now, and recently I noticed small instability in results provided
by our code. For example if I run my program 10 times with the same
output, 5/10 times I get wrong output, and I cannot understand why. So I
tried memcheck, but when I run my software in it I always get right
output, no matter how often I rerun it - output is always stable, and of
course memcheck doesn't report any issues. Same issue happens with
helgrind. I can suspect one of dynamic libraries for this instability,
but I cannot find exact place that causes this issue. I have sources of
that library, but it's quite massive, and I'm not original developer of
it and unfortunately I cannot show it since it's closed-source. Most
probably this issue is not caused by race-conditions, because it happens
even when I run everything in single thread.
So far I tried to play with:
--smc-check=all
--redzone-size=*
--fair-sched=yes
--expensive-definedness-check=yes
Is there anything else I can try? I feel like there is some legitimate
way of executing random branch of code, and somehow when I launch my
program in valgrind - it always runs only good parts of code, this is
why I don't see my program failing, and I don't see any issues reported
in valgrind. But is there a way to make it run in same way as without
valgrind? I mean to make it produce bad output in valgrind?
I'm using valgrind-3.12.0, my program is compiled with gcc6.3
Thanks in advance.
_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users