private void handleEvent(@NotNull SuspendContextCommandImpl action, @NotNull LocatableEvent event) {
      if (myTrackedObjects.size() >= TRACKED_INSTANCES_LIMIT) {
        disable();
        return;
      }

      try {
        SuspendContextImpl suspendContext = action.getSuspendContext();
        if (suspendContext != null) {
          final MemoryViewDebugProcessData data = suspendContext.getDebugProcess().getUserData(MemoryViewDebugProcessData.KEY);
          ObjectReference thisRef = getThisObject(suspendContext, event);
          if (thisRef != null && thisRef.referenceType().name().equals(myClassName) && data != null) {
            DebuggerUtilsEx.disableCollection(thisRef);
            myTrackedObjects.add(thisRef);
            data.getTrackedStacks().addStack(thisRef, StackFrameItem.createFrames(suspendContext, false));
          }
        }
      }
      catch (EvaluateException ignored) {
      }
    }
private void handleEvent(@NotNull SuspendContextCommandImpl action, @NotNull LocatableEvent event)