Dan Eloff wrote:
Well it seems that certain code that is run with exec will create the
bad frames which then gets attached to subsequent exceptions. It isn't
related to the Microsoft.Scripting.Silverlight code, but it could
still be silverlight specific. Actually I'm highly suspicious of the
big block of code in GetDyanmicStackFrames that seems to be for
filtering bad frames out, which is ifdefed out for silverlight. Do you
remember why that part isn't used for silverlight? I'll keep digging
and see if I find anything more concrete.

FWIW (which may not be much) we used to see a very similar problem in IronPython 1. We fixed it by adding an explicit sys.exc_clear whenever we handled exceptions and needed a reliable traceback.

Michael
Thanks,
-Dan

On Fri, Jan 16, 2009 at 3:10 PM, Dino Viehland <di...@microsoft.com> wrote:
Good places to look would be:
       ExceptionHelpers.UpdateStackTrace is where the frame should be remembered
       PythonOps.CreateTraceBack should be where we actually pull the current 
set of frames for exceptions and build up the stack trace
       ScriptingRuntimeHelpers.GetDynamicStackFrames is where we actually 
figure out the frames associated with a particular exception.        Those can 
come from either a thread static or the exception object it's self.

I'd guess the bug is somehow related to the thread static 
(ExceptionHelpers.DynamicStackFrames) tracking extra frames and not being 
cleared at some appropriate time.  I look forward to seeing what you find :)

-----Original Message-----
From: users-boun...@lists.ironpython.com 
[mailto:users-boun...@lists.ironpython.com] On Behalf Of Dan Eloff
Sent: Friday, January 16, 2009 11:18 AM
To: Discussion of IronPython
Subject: Re: [IronPython] Odd tracebacks

This extraneous stack trace seems to happen on every exception. I've
confirmed that it's an IronPython problem, not silverlight. It only
ever consists of these two, and the debugger confirms that they aren't
called on the error path.

at pairwise in game/utils\functions.py, line 46
at __getattr__ in game\models\__init__.py, line 145

It's baffling. I tried again to make a repro, using duplicates of
these two functions, in the same package structure, but failed. I'm
going to try putting break points into the IronPython exception
formatting code and running under the debugger later today. I'd really
appreciate if I had some function names or places where I should put
break points, because I have no idea. I'll have to dig through the
IronPython code for hours to find appropriate places.

Thanks,
-Dan
_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


--
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/blog


_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to