'Construct a fake traceback object using a list of frames. Note that
although frames generally include locals and globals, this information
is not kept by this object, since locals and globals are not used in
standard tracebacks.
@param frames: [(methodname, filename, lineno, locals, globals), ...]'

def __init__(self, frames):

    assert (len(frames) > 0), 'Must    pass    some    frames'
    (head, frames) = (frames[0], frames[1:])
    (name, filename, lineno, localz, globalz) = head
    self.tb_frame = _Frame(name, filename)
    self.tb_lineno = lineno
    if (len(frames) == 0):
        self.tb_next = None
    else:
        self.tb_next = _Traceback(frames)
