This is a question I have also submitted to the technical support, I am worried that it is a bit too technical for them, however:)
I am debugging a C program which links against the OpenMaple API library (under Linux and with Maple 17 and 18). I am using valgrind memcheck, because I am experiencing strange behavior which could be due to writes beyond allocated blocks of memory.
The first thing which jumps to my eye, are many errors of the types
Use of uninitialised value of size (4/8/16)
Invalid read of size (4/8/16)
Conditional jump or move depends on uninitialised value(s)
The same errors are also printed when I use the examples that ship with Maple. For instance, I compile "simple.c" with
gcc -Wl,--no-as-needed -lmaple -lmaplec -lrt -L /usr/lib -L $MAPLEDIR/bin.X86_64_LINUX -I $MAPLEDIR/extern/include -o simple simple.c
and run valgrind as
valgrind --tool=memcheck --error-limit=no --log-file=memcheck.log ./simple
Some, but not all, of the errors occur in
__intel_sse2_strlen. Furthermore, according to valgrind there are definite memory leaks. which appear in the library.
Practically this makes it hard for me to identify my potential own errors. I am a bit surprised to see so many warnings because I tend to fix my own programs until memcheck does not print these anymore (before I give it away at least). The question is: Can I consider these errors as safe to ignore? How would I distinguish real errors which may appear in my application?