def debug(drv, use_pdb=True): # XXX unify some code with rpython.translator.goal.translate from rpython.translator.tool.pdbplus import PdbPlusShow from rpython.translator.driver import log t = drv.translator class options: huge = 100 tb = None import traceback errmsg = ["Error:\n"] exc, val, tb = sys.exc_info() errmsg.extend([" %s" % line for line in traceback.format_exception(exc, val, [])]) block = getattr(val, '__annotator_block', None) if block: class FileLike: def write(self, s): errmsg.append(" %s" % s) errmsg.append("Processing block:\n") t.about(block, FileLike()) log.ERROR(''.join(errmsg)) log.event("start debugger...") if use_pdb: pdb_plus_show = PdbPlusShow(t) pdb_plus_show.start(tb)
def debug(drv, use_pdb=True): # XXX unify some code with rpython.translator.goal.translate from rpython.translator.tool.pdbplus import PdbPlusShow from rpython.translator.driver import log t = drv.translator class options: huge = 100 tb = None import traceback errmsg = ["Error:\n"] exc, val, tb = sys.exc_info() errmsg.extend( [" %s" % line for line in traceback.format_exception(exc, val, [])]) block = getattr(val, '__annotator_block', None) if block: class FileLike: def write(self, s): errmsg.append(" %s" % s) errmsg.append("Processing block:\n") t.about(block, FileLike()) log.ERROR(''.join(errmsg)) log.event("start debugger...") if use_pdb: pdb_plus_show = PdbPlusShow(t) pdb_plus_show.start(tb)