Yes i used purify (purify_all_in_use()(name could be wrong) in my application and checked the memory blocks that were allocated from Tcl_CreateInterp() function. Compare to the free() and mutex_unlock() function calls ( from Tcl_DeleteInterp() truss output), the malloc() function call were very less in Tcl_CreateInterp() function.

I have also used TCL_MEM_DEBUG flag (enabled the mem flag), but not sure of how to use the debug symbol enabled libraries. I have used 'memory active <file>' command on my application to see the active memory allocations. But my application is failed to recognize the memory command.