static void FreeProbe(void (*origFree)(void *), UINT32 freeNum, void *ptr, ADDRINT appTP)
{
#if defined(TARGET_IPF)
    ADDRINT toolTP = IPF_GetTP();
    IPF_SetTP(appTP);
    origFree(ptr);
    IPF_SetTP(toolTP);
#else
    origFree(ptr);
#endif

    PIN_LockClient();
    TraceFile << freeNum << " free(" << ptr << ")" << std::endl;
    PIN_UnlockClient();
}
static void FreeProbe(void (*origFree)(void *), UINT32 freeNum, void *ptr, ADDRINT appTP)
{
    origFree(ptr);
    PIN_LockClient();
    TraceFile << freeNum << " free(" << ptr << ")" << std::endl;
    PIN_UnlockClient();
}