This tool allows you to wrap an existing program and wrap calls to pthread_create and pthread_mutex_* to
display what is happening. Specifically creation, locking, unlocking and destruction of mutexes as well
as creation and termination of threads is displayed. Note that it does replace pthread_mutex_trylock.
Objects are numbered sequentially numbered at creation and those numbers are used to identify them later
on. When a lock is acquired in one thread which is currently held by another thread, the ownership
transfer is explained.
The mutextrace utility sets up the LD_PRELOAD environment variable to load the library into a program to
be debugged. It takes no options on its own and assumes that the first parameter refers to a program to
be executed. All further parameters are passed on to the wrapped program.