Exemple #1
0
// 追跡しているオブジェクトのサイズを変更する
void TrackChangeObjSize(UINT64 addr, UINT size, UINT64 new_addr)
{
    TRACKING_OBJECT *o;
    // 引数チェック
    if (addr == 0)
    {
        return;
    }

    if (IsMemCheck() == false)
    {
        // リリースモードでは追跡しない
        return;
    }

    if (disable_tracking)
    {
        return;
    }

    LockTrackingList();
    {
        o = SearchTrackingList(addr);
        if (o == NULL)
        {
            UnlockTrackingList();
            return;
        }

        DeleteTrackingList(o, false);

        o->Size = size;
        o->Address = new_addr;

        InsertTrackingList(o);
    }
    UnlockTrackingList();
}
Exemple #2
0
// Change the size of the object being tracked
void TrackChangeObjSize(UINT64 addr, UINT size, UINT64 new_addr)
{
	TRACKING_OBJECT *o;
	// Validate arguments
	if (addr == 0)
	{
		return;
	}

	if (IsMemCheck() == false)
	{
		// Don't track in the release mode
		return;
	}

	if (disable_tracking)
	{
		return;
	}

	LockTrackingList();
	{
		o = SearchTrackingList(addr);
		if (o == NULL)
		{
			UnlockTrackingList();
			return;
		}

		DeleteTrackingList(o, false);

		o->Size = size;
		o->Address = new_addr;

		InsertTrackingList(o);
	}
	UnlockTrackingList();
}
Exemple #3
0
// 追跡リストからオブジェクトを削除する
void TrackDeleteObj(UINT64 addr)
{
    TRACKING_OBJECT *o;
    // 引数チェック
    if (addr == 0)
    {
        return;
    }

    if (IsMemCheck() == false)
    {
        // リリースモードでは追跡しない
        return;
    }

    if (disable_tracking)
    {
        return;
    }

    LockTrackingList();
    {
        o = SearchTrackingList(addr);
        if (o == NULL)
        {
            UnlockTrackingList();

            if (IsDebug())
            {
                printf("TrackDeleteObj: 0x%x is not Object!!\n", (void *)addr);
            }
            return;
        }
        DeleteTrackingList(o, true);
    }
    UnlockTrackingList();
}
Exemple #4
0
// Remove the object from the tracking list
void TrackDeleteObj(UINT64 addr)
{
	TRACKING_OBJECT *o;
	// Validate arguments
	if (addr == 0)
	{
		return;
	}

	if (IsMemCheck() == false)
	{
		// Don't track in the release mode
		return;
	}

	if (disable_tracking)
	{
		return;
	}

	LockTrackingList();
	{
		o = SearchTrackingList(addr);
		if (o == NULL)
		{
			UnlockTrackingList();

			if (IsDebug())
			{
				printf("TrackDeleteObj: 0x%x is not Object!!\n", (void *)addr);
			}
			return;
		}
		DeleteTrackingList(o, true);
	}
	UnlockTrackingList();
}