pxQueue having completely surrealist length

luccadoret wrote on Tuesday, May 03, 2016:

Hi, in my program, at some poin, I can’t give a semaphore (mutex) because it says that the number of messages waiting is lower than the length. Both of those variables have a very weird value. What could make them go so high ? With this message I attached a screen of the condition that fails, and the value of the variables (bottom of the screen).

Thanks guys.

heinbali01 wrote on Tuesday, May 03, 2016:

Hi Luc,

That looks like some corruption.

Either the value of the variable ‘pxQueue’ is corrupted.
And if pxQueue is still pointing to the queue object, it might be that the contents of the object has been overwritten.
How did you declare the pointer pxQueue, as an automatic variable? Does its value change? Did you declare an object just next to it?

	char pcBuffer[64];
	QueueHandle_t pxQueue;

and overwrite the adjacent object?
Many possibilities to investigate…