private void captureFieldModification(Value valueToBe,
                                        Value obj,
                                        boolean shouldSaveStack,
                                        DebugProcessImpl debugProcess,
                                        SuspendContextImpl context) {
    StackFrameProxyImpl frameProxy = context.getFrameProxy();
    if (frameProxy == null) {
      return;
    }

    Value internalClsName = getInternalClsName(debugProcess, context);
    if (internalClsName == null) {
      return;
    }

    Value fieldName = frameProxy.getVirtualMachine().mirrorOf(getFieldName());
    Value shouldSave = frameProxy.getVirtualMachine().mirrorOf(shouldSaveStack);

    ArrayList<Value> args = new ArrayList<>();
    args.add(valueToBe);
    args.add(obj);
    args.add(internalClsName);
    args.add(fieldName);
    args.add(shouldSave);

    CollectionBreakpointUtils.invokeInstrumentorMethod(debugProcess, context,
                                                       CAPTURE_FIELD_MODIFICATION_METHOD_NAME,
                                                       CAPTURE_FIELD_MODIFICATION_METHOD_DESC,
                                                       args);
  }
private void captureFieldModification(Value valueToBe,
                                        Value obj,
                                        boolean shouldSaveStack,
                                        DebugProcessImpl debugProcess,
                                        SuspendContextImpl context)