// 追跡しているオブジェクトのサイズを変更する 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(); }
// 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(); }
// 追跡リストからオブジェクトを削除する 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(); }
// 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(); }