On Mon, Sep 26, 2011 at 10:35 PM, Dino Viehland <di...@microsoft.com> wrote: > Is the hosted IronPython running in the same ScriptEngine or a different one?
Different. > If it's a different one you'll need to do the settrace on the other > ScriptEngine but > you should be able to do that from Python code as well. Yes, and I was hoping that is what this would do: IronPython.Hosting.Python.GetSysModule(engine).settrace(trace) Here, "engine" is the engine for the hosted Python language (the Python host engine is actually in a bit of C#). > If it's the same then I would expect that you'd see the traces for both the > hosting > and hosted code (I'd also consider separating it into 2 different engines so > that > you should only see the traces for the hosted code, or you could look at the > args > and see if it's the hosting code and ignore it). But if they're the same and > you're > not getting the trace events for the hosted code then that could be a bug. Ok, sounds like a bug, if the above settrace command is supposed to be equivalent to the PythonEngine.GetSysModules().settrace. I'll try to come up with a small example for a bug report. Thanks! -Doug >> -----Original Message----- >> From: ironpython-users- >> bounces+dinov=exchange.microsoft....@python.org [mailto:ironpython- >> users-bounces+dinov=exchange.microsoft....@python.org] On Behalf Of >> Doug Blank >> Sent: Monday, September 26, 2011 10:25 AM >> To: Dino Viehland >> Cc: ironpython-users@python.org >> Subject: Re: [Ironpython-users] Options for debugger for DLR languages on >> Mono >> >> On Mon, Sep 26, 2011 at 12:54 PM, Dino Viehland <di...@microsoft.com> >> wrote: >> > Do you have a using statement for IronPython.Hosting? If you add that >> > you should get the extension method showing up on ScriptEngine. >> >> I'm using IronPython as the hosting language... does that mean I just can't >> get the extensions? >> >> But in any event, is this workaround: >> >> IronPython.Hosting.Python.GetSysModule(engine).settrace(trace) >> >> equivalent? >> >> > As for tracing the hosting level - can you describe what you mean? Do >> > you have additional hosting code written in Python? >> >> Yes, all of the hosting code is written in IronPython. When I use the >> workaround above, I get tracing but at my IronPython hosting app level, not >> at the level of my script being run. The only way I can get tracing in my >> Python script being executed, is by having the set_trace inside that file. >> >> I'm trying to find a way that I can from outside that script (eg, from the >> IronPython hosting app) get tracing on. I can probably write some of this in >> C# if I need to, but all of the hosting app is written in IronPython at the >> moment. >> >> -Doug >> >> > -----Original Message----- >> > From: Doug Blank [mailto:doug.bl...@gmail.com] >> > Sent: Saturday, September 24, 2011 5:47 PM >> > To: Dino Viehland; ironpython-users@python.org >> > Subject: Re: [Ironpython-users] Options for debugger for DLR languages >> > on Mono >> > >> > On Sat, Sep 24, 2011 at 5:09 PM, Dino Viehland <di...@microsoft.com> >> wrote: >> >> You should be able to do engine.GetSysModule().settrace(func) and >> >> then do the Execute call (this is using C# dynamic to invoke settrace). >> >> >> >> GetSysModule is an extension method in IronPython.Hosting. >> > >> > I didn't see GetSysModule for some reason in IronPython 2.7.... >> > perhaps a Mono issue, or maybe I'm not importing it correctly? >> > >> > But I was able to: >> > >> > IronPython.Hosting.Python.GetSysModule(engine).settrace(trace) >> > source = engine.CreateScriptSourceFromFile(filename) >> > source.Compile() >> > source.Execute(scope) >> > >> > However, it ended up tracing the hosting level, rather than the source. Is >> that an IronPython issue? Or user error? Is there another way to inject a >> trace in an execution? >> > >> > -Doug >> > >> >>> -----Original Message----- >> >>> From: ironpython-users- >> >>> bounces+dinov=exchange.microsoft....@python.org >> [mailto:ironpython- >> >>> users-bounces+dinov=exchange.microsoft....@python.org] On Behalf >> Of >> >>> Doug Blank >> >>> Sent: Saturday, September 24, 2011 10:48 AM >> >>> To: Dino Viehland >> >>> Cc: ironpython-users@python.org >> >>> Subject: Re: [Ironpython-users] Options for debugger for DLR >> >>> languages on Mono >> >>> >> >>> Use of sys.settrace (especially with the bdb.py) makes the Python >> >>> debugger really easy. However, I'm having one little issue: I want >> >>> to set the trace from outside the running code. Currently, I'm running a >> Python file like this: >> >>> >> >>> source = engine.CreateScriptSourceFromFile(filename) >> >>> source.Compile() >> >>> source.Execute(manager.scope) >> >>> >> >>> I have a bdb-based debugger that works it I put it the the file, but >> >>> I can't figure out how to inject it into the Execution. For example, if I >> have in the file: >> >>> >> >>> d.set_trace() >> >>> x = 1 >> >>> >> >>> I can trace that. But if I take out the "d.set_trace()" and execute >> >>> it any other way in the same scope, it doesn't work. >> >>> >> >>> How can I get code to run as it it were in the file? Any ideas >> >>> appreciated! >> >>> >> >>> -Doug >> >>> _______________________________________________ >> >>> Ironpython-users mailing list >> >>> Ironpython-users@python.org >> >>> http://mail.python.org/mailman/listinfo/ironpython-users >> >> >> >> >> > >> > >> > >> _______________________________________________ >> Ironpython-users mailing list >> Ironpython-users@python.org >> http://mail.python.org/mailman/listinfo/ironpython-users > > _______________________________________________ Ironpython-users mailing list Ironpython-users@python.org http://mail.python.org/mailman/listinfo/ironpython-users