Mercurial > scratch
diff pydershell/pydershell.py @ 16:a78570a423ea
Show code excerpts in js stack tracebacks
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Mon, 07 Sep 2009 00:33:56 -0700 |
parents | 351525e95a45 |
children | 1d62177c5c27 |
line wrap: on
line diff
--- a/pydershell/pydershell.py Sun Sep 06 14:59:58 2009 -0700 +++ b/pydershell/pydershell.py Mon Sep 07 00:33:56 2009 -0700 @@ -108,16 +108,22 @@ function = js_stack['function'] if script: frameinfo = dict(filename = script.filename, - lineno = js_stack['lineno'], - name = '<module>') + lineno = js_stack['lineno'], + name = '<module>') elif function and not function.is_python: frameinfo = dict(filename = function.filename, - lineno = js_stack['lineno'], - name = function.name) + lineno = js_stack['lineno'], + name = function.name) else: frameinfo = None if frameinfo: lines.insert(0, STACK_LINE % frameinfo) + try: + filelines = open(frameinfo['filename']).readlines() + line = filelines[frameinfo['lineno'] - 1].strip() + lines.insert(1, " %s" % line) + except Exception: + pass js_stack = js_stack['caller'] lines.insert(0, "Traceback (most recent call last):") return '\n'.join(lines)