private void trackClass(@NotNull XDebugSession session,
                          @NotNull DebugProcessImpl debugProcess,
                          @NotNull ReferenceType ref,
                          @NotNull TrackingType type,
                          boolean isTrackerEnabled) {
    DebuggerManagerThreadImpl.assertIsManagerThread();
    if (!debugProcess.getVirtualMachineProxy().canBeModified()) {
      return;
    }
    if (type == TrackingType.CREATION) {
      final ConstructorInstancesTracker old = myConstructorTrackedClasses.getOrDefault(ref, null);
      if (old != null) {
        Disposer.dispose(old);
      }

      final ConstructorInstancesTracker tracker = new ConstructorInstancesTracker(ref, session, myInstancesTracker);
      tracker.setBackgroundMode(!myIsActive);
      if (isTrackerEnabled) {
        tracker.enable();
      }
      else {
        tracker.disable();
      }

      myConstructorTrackedClasses.put(ref, tracker);
    }
  }
private void trackClass(@NotNull XDebugSession session,
                          @NotNull DebugProcessImpl debugProcess,
                          @NotNull ReferenceType ref,
                          @NotNull TrackingType type,
                          boolean isTrackerEnabled)