def __init__(self, etype, value, tb, xtb):
self.etype = etype<EOL>self.value = value<EOL>self.xtb = xtb<EOL>self.number_padding = <NUM_LIT:0><EOL>self.frames = []<EOL>i = <NUM_LIT:0><EOL>while tb is not None and (self.xtb.options.limit is None<EOL>or i < self.xtb.options.limit):<EOL><INDENT>if i >= self.xtb.options.offset:<EOL><INDENT>try:<EOL><INDENT>frame_info = inspect.getframeinfo(tb,<EOL>self.xtb.options.context)<EOL><DEDENT>except KeyError:  <EOL><INDENT>pass<EOL><DEDENT>frame = XTracebackFrame(self, tb.tb_frame, frame_info, i)<EOL>if not frame.exclude:<EOL><INDENT>self.frames.append(frame)<EOL>self.number_padding = max(len(str(frame.lineno)),<EOL>self.number_padding)<EOL><DEDENT><DEDENT>tb = tb.tb_next<EOL>i += <NUM_LIT:1><EOL><DEDENT>
:param value: The exception instance
:type value: Exception
:param tb: The traceback instance
:type tb: traceback
:param xtb: the xtraceback instance
:type xtb: XTraceback