We would like to modify the value of the system variable pxMutexHolder defined in the file task.c, how can we access its value through a function?
We tried to change its value from our main() but it didn't work since pxMutexHoder cannot be accessed by our application.
I don't think pxMutexHolder is a system variable defined inside tasks.c.
The function xTaskPriorityInherit() has a parameter called
pxMutexHolder - is that what you mean? That parameter is local to the
function xTaskPriorityInherit() so can't be changed. The mutex holder
value is actually stored inside a queue structure, which is defined in
queue.c, not a task control block. You could potentially change the
value stored in the queue itself, that could be done using the
traceBLOCKINGONQUEUE_RECEIVE() macro which gets executed (if defined)
immediately before xTaskPriorityInherit() is called.
This is very detailed and messy though, and don't expect anything to
work after you have modified it.