':type select: Union[int, str]
:rtype: str'

def _dump(self, select='all'):

    from pprint import pformat
    select = {'all': 'all', 1: 'rv', 2: 'rv2', 3: 'rv3'}[select]
    dump = '\n-------------    begin    dump    -------------'
    dump += '\n-------------    zmirror    parse    -------------\n'
    dump += attributes(self.zmirror.parse)
    if (self.zmirror.parse.remote_response is not None):
        dump += '\n-------------    zmirror    remote    request    -------------\n'
        dump += attributes(self.zmirror.parse.remote_response.request)
        dump += '\n-------------    zmirror    remote    response    -------------\n'
        dump += attributes(self.zmirror.parse.remote_response)
    for rv_name in ([select] if (select != 'all') else ['rv', 'rv2', 'rv3']):
        if (not hasattr(self, rv_name)):
            continue
        rv = getattr(self, rv_name)
        if (not isinstance(rv, Response)):
            continue
        dump += '\n-------------    {}    -------------\n'.format(rv_name)
        dump += attributes(rv)
        dump += '\n-------------    {}.headers    -------------\n'.format(rv_name)
        dump += pformat(list(rv.headers.items()))
    dump += '\n-------------    end    dump    -------------\n'
    return dump
