valgrind Conditional jump or move depends on uninitialised value(s) , does this indicate memory leak?
c, c++, valgrind
Solution
No, it means that you are accessing memory that hasn't been initialized:
int main()
{
int unitialized;
std::cout << unitialized << std::endl;
}
would trigger this error.
Slightly more common would be:
struct X
{
X() : i(42) { }
private:
int i;
int* forgotten; // oops, not initialized
};
Lastly, this frequently happens with malloc based code, when you don't use `memset` to clear the whole buffer. So,
- malloc a buffer size m
- read (e.g. from a socket) n bytes
- write m bytes to a file; (m-n) bytes wouldn't have been initialized
Problem
I am facing a memory leak problem in the code, while its running, the heap goes on increasing to maximum and i need to restart the service, I ran top command and see that the heap is increasing whenever im invoking a scenario in the service. I ran the service with valgrind , ``` valgrind --log-file=log-feb19.txt --leak-check=full --show-reachable=yes --track-origins=yes myservice ``` I donot see any definitely lost or possibly lost blocks while iam running the scenarios but i see a lot of Conditional jump or move depends on uninitialised value(s) errors. Do these count for a memory leak? Example of what i am getting: ``` ==27278== Conditional jump or move depends on uninitialised value(s) ==27278== at 0xC90D91E: xcsFreeMemFn (in /apps/opt/mqm/lib64/libmqmcs_r.so) ``` ........ ``` ==27278== Uninitialised value was created by a heap allocation ==27278== at 0x4A078B8: malloc (vg_replace_malloc.c:270) ==27278== by 0xC90E32F: xcsGetMemFn (in /apps/opt/mqm/lib64/libmqmcs_r.so) ``` Can someone help.