docs: function convert(trace, opts) {
    opts = opts || {}
    this._map = opts.map
  
    this._opts = xtend({ v8gc: true }, opts, { map: this._map ? 'was supplied' : 'was not supplied' })
    this.emit('info', 'Options: %j', this._opts)
  
    this._trace = trace
    this._traceLen = trace.length
  
    if (!this._traceLen) {
      this.emit('warn', 'Trace was empty, quitting')
      return
    }
  
    try {
      this._traceStart = traceUtil.traceStart(this._trace)
  
      this._converterCtr = getConverter(this._trace, this._traceStart, this._opts.type)
      this._resolveTraceInfo()
      this._tryResolveSymbols()
      this._filterInternals()
  
      var converter = this._converterCtr(this._filtered, this._traceStart, this._opts)
      this.emit('info', 'Converting trace of length %d', this._filteredLen)
      var converted = converter.convert()
      this.emit('info', 'Success!')
      return converted
    } catch (err) {
      this.emit('error', err)
    }
  }