From 81c0821cfec5bee67c35e072f5cfd878abd09040 Mon Sep 17 00:00:00 2001 From: Dave Beazley Date: Fri, 23 Feb 2001 02:22:44 +0000 Subject: [PATCH] *** empty log message *** git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@1024 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Tools/WAD/Test/wpm.py | 88 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 Tools/WAD/Test/wpm.py diff --git a/Tools/WAD/Test/wpm.py b/Tools/WAD/Test/wpm.py new file mode 100644 index 000000000..5d7f232fa --- /dev/null +++ b/Tools/WAD/Test/wpm.py @@ -0,0 +1,88 @@ +# ----------------------------------------------------------------------------- +# Wad port-mortem debugger +# +# David Beazley +# ----------------------------------------------------------------------------- + +import sys + + +_last_exc = None +_last_level = 0 +frame = None + +print "WAD port-mortem" + +class where_impl: + def __init__(self): + self.all = 0; + + def __repr__(self): + global _last_exc, _last_level, frame + if sys.last_value: + if not _last_exc: + _last_exc = sys.last_value[0] + _last_level = 0 + + else: + raise RuntimeError,"No pending error." + if (self.all): + print repr(_last_exc) + else: + print str(_last_exc) + frame = _last_exc + return "" + def __getattr__(self,name): + try: + return getattr(frame,name) + except: + raise AttributeError + + def __getitem__(self,n): + global frame, _last_level + frame = _last_exc[n] + _last_level = n + return frame + + def __len__(self): + return len(frame) + + +where = where_impl() +w = where + +class up_impl: + def __repr__(self): + global _last_exc, _last_level, frame + if not _last_exc: + return "" + _last_level += 1 + print repr(_last_exc[_last_level]) + frame = _last_exc[_last_level] + return "" + +up = up_impl() +u = up + +class down_impl: + def __repr__(self): + global _last_exc, _last_level, frame + if not _last_exc: + return "" + _last_level -= 1 + print repr(_last_exc[_last_level]) + frame = _last_exc[_last_level] + return "" + +down = down_impl() +d = down + +class clear_impl: + def __repr__(self): + global _last_exc, _last_level, frame + _last_exc = None + frame = None + +clear = clear_impl() +c = clear +