Was hoping someone with more knowledge would answer your question but think theres been a holiday in the US. I cannot say if IP behaves the same as CPython in this case, but I was going to say that using the the standard traceback module allows printing of the stack. Even one of the IP team said it in a email: >---------- >From: Dino Viehland >Sent: Wednesday, July 12, 2006 11:54 AM >To: Discussion of IronPython >Subject: Re: [IronPython] Getting a call stack from an exception? > >Tracebacks are the correct way to do this, I recommend you install the standard Python library against IronPython to make this really useful – then you can do import traceback and use its handy functions (otherwise you'll be walking the traceback list in sys.exc_info() which won't be much fun). >
But running this code: import sys, traceback def test(): try: raise Exception() except: print traceback.format_exc() print traceback.print_stack() test() I got this: 'NoneType' object has no attribute 'tb_frame' at IronPython.Runtime.Types.DynamicType.GetAttr(ICallerContext context, Objec t self, SymbolId name) at IronPython.Runtime.Operations.Ops.GetAttr(ICallerContext context, Object o , SymbolId name) at traceback.print_stack$f14(Object f, Object limit, Object file) in E:\Pytho n24\Lib\traceback.py:line 246 at IronPython.Runtime.Calls.Function3.Call(ICallerContext context) at IronPython.Runtime.Operations.Ops.CallWithContext(ICallerContext context, Object func) at test$f159##120(ModuleScope ) at IronPython.Runtime.Calls.CallTarget0.Invoke() at IronPython.Runtime.Calls.Function0.Call(ICallerContext context) at IronPython.Runtime.Operations.Ops.CallWithContext(ICallerContext context, Object func) at <stdin>##121(ModuleScope ) at IronPython.Hosting.CompiledCodeDelegate.Invoke(ModuleScope moduleScope) at IronPython.Hosting.CompiledCode.Run(ModuleScope moduleScope) at IronPython.Hosting.PythonEngine.ExecuteToConsole(String text, EngineModule engineModule, IDictionary`2 locals) at IronPython.Hosting.PythonEngine.ExecuteToConsole(String text) at IronPythonConsole.PythonCommandLine.DoOneInteractive() at IronPythonConsole.PythonCommandLine.<RunInteractiveLoop>b__6(Boolean& cont inueInteractionArgument) at IronPythonConsole.PythonCommandLine.TryInteractiveAction(InteractiveAction interactiveAction, Boolean& continueInteraction) AttributeError: 'NoneType' object has no attribute 'tb_frame' So maybe it is a bug, or you can use traceback for simple things but not printing the stack or maybe it only affects Australians like you and me. Regards Mark On 9/5/06, Gary Stephenson <[EMAIL PROTECTED]> wrote: > My third attempt at asking this question (as the previous two went through > to the 'keeper) ... > > Is the following considered a bug in IronPython, or am I doing something > wrong? > > import sys > > def test(): > try: > raise Exception() > except Exception, oErr: > print sys.exc_info()[2] # None in ipy, traceback object in > CPython > print sys.exc_traceback # ditto.. > > test() > > Regardless of the answer to the previous question, a printout of a stack > trace does currently occur on an unhandled exception. Other than > redirecting stderr (which I _assume_ would work), is there an easy way of > logging the traceback message to a file? > > Apologies if I am asking unwelcome nooby questions. Should I perhaps be > asking on another forum, and if so, which? > > thanks in advance, > > gary > > _______________________________________________ > 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