import pdb import sys import traceback class nob: def __init__(self): self.D = bytearray(b'', 'utf-8') def R(self, r): self.D.extend(r) def L(self, l): if(l <= len(self.D)): return self.D[l-1] def A(self, a): if(a < len(self.D)): return(self.D[-a:]) elif(a == len(self.D)): return(self.D) else: exit(0) def excepthook(type, value, tb): print "*** print_stack:" traceback.print_stack() pdb.set_trace() try: sys.excepthook = excepthook print(dir(traceback)) Nob = nob() Nob.R('D') Nob.D.extend(Nob.D) print(Nob.L(3)) print(Nob.A(1)) except Exception as err: exc_type, exc_value, exc_traceback = sys.exc_info() print "*** print_tb:" traceback.print_tb(exc_traceback, limit=1, file=sys.stdout) print "*** print_exception:" traceback.print_exception(exc_type, exc_value, exc_traceback, limit=2, file=sys.stdout) print "*** print_exc:" traceback.print_exc() print "*** format_exc, first and last line:" formatted_lines = traceback.format_exc().splitlines() print formatted_lines[0] print formatted_lines[-1] print "*** format_exception:" print repr(traceback.format_exception(exc_type, exc_value, exc_traceback)) print "*** extract_tb:" print repr(traceback.extract_tb(exc_traceback)) print "*** format_tb:" print repr(traceback.format_tb(exc_traceback)) print "*** tb_lineno:", exc_traceback.tb_lineno pdb.set_trace()