[IronPython] Question aboutVisual Studio& IronPython Toolsand Debugging

Marty Nelson Marty.Nelson at symyx.com
Fri Sep 3 16:45:07 CEST 2010


Dino -

A couple more questions:

* What is the minimum version of IPy required for the running
ScriptEngine that I want to debug (can I use 2.0?)
* Do I need IPy Tools installed in Visual Studio to debug? (I would
assume so, but thought I would ask)  
* Is there a need to have a version correlation between the IPy Tools
and the debugged ScriptEngine?

-----Original Message-----
From: users-bounces at lists.ironpython.com
[mailto:users-bounces at lists.ironpython.com] On Behalf Of Dino Viehland
Sent: Wednesday, September 01, 2010 10:51 AM
To: Discussion of IronPython
Subject: Re: [IronPython] Question aboutVisual Studio& IronPython
Toolsand Debugging

Currently the watch window works like a normal C# watch window.  We have

various debugger views to help make it more palatable so you can see
Python
attributes but dotting through some objects might require a cast to
dynamic
to really see certain values.  But for normal .NET objects it'll work
great.

> -----Original Message-----
> From: users-bounces at lists.ironpython.com [mailto:users-
> bounces at lists.ironpython.com] On Behalf Of Marty Nelson
> Sent: Wednesday, September 01, 2010 10:25 AM
> To: Discussion of IronPython
> Subject: Re: [IronPython] Question about Visual Studio& IronPython
Toolsand
> Debugging
> 
> 
> Thanks.  There are really two issues I need to solve:
> 
> 1.  How to provide a good "dev" experience so script authors can use
our
> app in a mode that allows for iterative development.
> 2.  Manage the "final" version of scripts so they can be stored in
> production system and used when needed.
> 
> So it may be sufficient for #1 to pass some project directory as
command
> argument to application (or some other means) and read in the scripts
> differently during the "dev" mode.  Then offer separate feature to
> commit those scripts to our db.
> 
> Overall, this looks very promising.  One more question, when attaching
> and debugging, if the scripts use .NET objects (those from the
> application environment that get passed into the scripts as variables
or
> created from our application types), does the Watch window work as it
> normally does in Visual Studio for those objects?
> 
> -----Original Message-----
> From: users-bounces at lists.ironpython.com
> [mailto:users-bounces at lists.ironpython.com] On Behalf Of Dino Viehland
> Sent: Wednesday, September 01, 2010 10:01 AM
> To: Discussion of IronPython
> Subject: Re: [IronPython] Question about Visual Studio& IronPython
> Toolsand Debugging
> 
> If you'd like to store the scripts in a database and allow the user to
> have
> scripts reference each other the one thing that you'll probably want
to
> do
> next is implement a PlatformAdaptationLayer to virtualize the file
> system.
> You can look at the Silverlight host to see how that's done but it
> basically
> it involes subclassing both PlatformAdaptationLayer and ScriptHost (to
> provide your PAL subclass).
> 
> The having VS save to the database part might be trickier.  It seems
> like you'd
> at least need a plugin to VS to know when the files are getting saved
> and that's
> not something I know how to do off the top of my head.  One extreme
> solution
> might be to plug into VS's source control mechanisms but I'm guessing
> that's
> not easy.  If you're starting VS on the behalf of the user it might be
> easy
> enough to have another program which has a FileSystemWatcher watching
> the
> project and propagating changes.
> 
> 
> > -----Original Message-----
> > From: users-bounces at lists.ironpython.com [mailto:users-
> > bounces at lists.ironpython.com] On Behalf Of Marty Nelson
> > Sent: Wednesday, September 01, 2010 9:53 AM
> > To: Discussion of IronPython
> > Subject: Re: [IronPython] Question about Visual Studio & IronPython
> Toolsand
> > Debugging
> >
> >
> > That will work fine.  I can create a config parameter in our
> application
> > (or maybe tie into log4net IsDebugEnabled) and we can change how we
> > invoke ScriptEngine.
> >
> > Next piece of the puzzle is about to manage scripts themselves.  We
> > currently have rich text editors within the application that
directly
> > store code as string.  I'm thinking we need to move to more of a
> script
> > library approach where application references scripts that have been
> > stored to a database.  This would mean user experience is to use IPy
> VS
> > and we would need some VS add-in to save those files to our db
behind
> > the scene.
> >
> > Any thoughts or experiences appreciated.
> >
> > -----Original Message-----
> > From: users-bounces at lists.ironpython.com
> > [mailto:users-bounces at lists.ironpython.com] On Behalf Of Dino
Viehland
> > Sent: Wednesday, September 01, 2010 9:49 AM
> > To: Discussion of IronPython
> > Subject: Re: [IronPython] Question about Visual Studio & IronPython
> > Toolsand Debugging
> >
> > Yep you'll need to write it out to a file and then create the
> > ScriptSource
> > object using the file instead of the in-memory stream.  The filename
> > will
> > then be carried along w/ the ScriptSource and when the debugging
> > information
> > is emitted it will be emitted w/ that filename so the debugger can
> pick
> > it
> > up.
> >
> > Also you won't want to always leave debugging mode on - it's much
> slower
> > to
> > compile the code in debugging mode than it is in normal mode.  I'd
> like
> > to
> > eventually start supporting sys.settrace style debugging which won't
> > have
> > this penalty but that won't happen anytime soon.
> >
> > > -----Original Message-----
> > > From: users-bounces at lists.ironpython.com [mailto:users-
> > > bounces at lists.ironpython.com] On Behalf Of Marty Nelson
> > > Sent: Wednesday, September 01, 2010 9:44 AM
> > > To: Discussion of IronPython
> > > Subject: Re: [IronPython] Question about Visual Studio & Iron
Python
> > Toolsand
> > > Debugging
> > >
> > >
> > > Setting DebugMode seems easy enough.
> > >
> > > The script code is loaded from an in-memory string.  Would we need
> to
> > > write it out to temp file first for debug case?  How does debugger
> > > "know" what source is?
> > >
> > > Thx
> > >
> > > -----Original Message-----
> > > From: users-bounces at lists.ironpython.com
> > > [mailto:users-bounces at lists.ironpython.com] On Behalf Of Dino
> Viehland
> > > Sent: Wednesday, September 01, 2010 9:29 AM
> > > To: Discussion of IronPython
> > > Subject: Re: [IronPython] Question about Visual Studio & Iron
Python
> > > Toolsand Debugging
> > >
> > > The scripts need to be started in debug mode and be stored in
files
> > > somewhere on disk (so Visual Studio can load the source code).  To
> > > enable
> > > debug mode you can set the DebugMode property on the
> > ScriptRuntimeSetup
> > > object.
> > >
> > > So this ends up looking like:
> > >
> > > var setup = Python.CreateRuntimeSetup();
> > > setup.DebugMode = true;
> > > var runtime = new ScriptRuntime(setup);
> > >
> > > Alternately can also pass in "Debug" = true to the
> IDictionary<string,
> > > object> when
> > > creating a Python engine:
> > >
> > > var dict = new Dictionary<string, object>();
> > > dict["Debug"] = true;
> > > Python.CreateEngine(dict);
> > >
> > > When you attach all of the Python code should be debuggable.
> > >
> > >
> > > > -----Original Message-----
> > > > From: users-bounces at lists.ironpython.com [mailto:users-
> > > > bounces at lists.ironpython.com] On Behalf Of Marty Nelson
> > > > Sent: Wednesday, September 01, 2010 8:42 AM
> > > > To: Discussion of IronPython
> > > > Subject: [IronPython] Question about Visual Studio & Iron Python
> > Tools
> > > and
> > > > Debugging
> > > >
> > > >
> > > > How does debugging work when attaching to a process with IPy
Tools
> > in
> > > > Visual Studio?
> > > >
> > > > Can I attach to an .NET application that has extension points
that
> > go
> > > > into ScriptEngine and "debug" the Python scripts?
> > > >
> > > > =======
> > > > Notice: This e-mail message, together with any attachments,
> contains
> > > > information of Symyx Technologies, Inc. or any of its affiliates
> or
> > > > subsidiaries that may be confidential, proprietary, copyrighted,
> > > > privileged and/or protected work product, and is meant solely
for
> > > > the intended recipient. If you are not the intended recipient,
and
> > > > have received this message in error, please contact the sender
> > > > immediately, permanently delete the original and any copies of
> this
> > > > email and any attachments thereto.
> > > > _______________________________________________
> > > > Users mailing list
> > > > Users at lists.ironpython.com
> > > > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> > > _______________________________________________
> > > Users mailing list
> > > Users at lists.ironpython.com
> > > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> > >
> > > =======
> > > Notice: This e-mail message, together with any attachments,
contains
> > > information of Symyx Technologies, Inc. or any of its affiliates
or
> > > subsidiaries that may be confidential, proprietary, copyrighted,
> > > privileged and/or protected work product, and is meant solely for
> > > the intended recipient. If you are not the intended recipient, and
> > > have received this message in error, please contact the sender
> > > immediately, permanently delete the original and any copies of
this
> > > email and any attachments thereto.
> > > _______________________________________________
> > > Users mailing list
> > > Users at lists.ironpython.com
> > > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> > _______________________________________________
> > Users mailing list
> > Users at lists.ironpython.com
> > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> >
> > =======
> > Notice: This e-mail message, together with any attachments, contains
> > information of Symyx Technologies, Inc. or any of its affiliates or
> > subsidiaries that may be confidential, proprietary, copyrighted,
> > privileged and/or protected work product, and is meant solely for
> > the intended recipient. If you are not the intended recipient, and
> > have received this message in error, please contact the sender
> > immediately, permanently delete the original and any copies of this
> > email and any attachments thereto.
> > _______________________________________________
> > Users mailing list
> > Users at lists.ironpython.com
> > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> 
> =======
> Notice: This e-mail message, together with any attachments, contains
> information of Symyx Technologies, Inc. or any of its affiliates or
> subsidiaries that may be confidential, proprietary, copyrighted,
> privileged and/or protected work product, and is meant solely for
> the intended recipient. If you are not the intended recipient, and
> have received this message in error, please contact the sender
> immediately, permanently delete the original and any copies of this
> email and any attachments thereto.
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________
Users mailing list
Users at lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

=======
Notice: This e-mail message, together with any attachments, contains
information of Symyx Technologies, Inc. or any of its affiliates or
subsidiaries that may be confidential, proprietary, copyrighted,
privileged and/or protected work product, and is meant solely for
the intended recipient. If you are not the intended recipient, and
have received this message in error, please contact the sender
immediately, permanently delete the original and any copies of this
email and any attachments thereto.



More information about the Ironpython-users mailing list