code: function captureCallbackFunc(name, fcn, parent) {
    validate(name, fcn);
  
    var base = contextUtils.resolveSegment(parent);
  
    if (!base) {
      logger.getLogger().warn('Failed to capture callback function.');
      return fcn;
    }
  
    base.incrementCounter();
  
    return function() {
      var parentSeg = contextUtils.resolveSegment(parent);
      var args = Array.prototype.slice.call(arguments);
  
      captureFunc(name, fcn.bind.apply(fcn, [null].concat(args)), parentSeg);
  
      base.decrementCounter();
    }.bind(this);
  }
docs: Wrap to automatically capture information for the sub/segment. This wraps the callback and returns a function.
  when executed, all arguments are passed through accordingly. An additional argument is appended to gain access to the newly created subsegment.
  For this reason, always call the captured callback with the full list of arguments.
  @param {string} name - The name of the new subsegment.
  @param {function} fcn - The function context to wrap. Can take a single 'subsegment' argument.
  @param {Segment|Subsegment} [parent] - The parent for the new subsegment, for manual mode.
  @alias module:capture.captureCallbackFunc