[IronPython] Debugging IronPython script code

Dino Viehland dinov at microsoft.com
Mon Oct 13 18:03:14 CEST 2008


How is the filename specified in the Create call?  Is it a full path?  If you just open the file in VS does VS recognize the code (e.g. can you set breakpoints)?

From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Rainer Worbis
Sent: Sunday, October 12, 2008 10:48 PM
To: Discussion of IronPython
Subject: Re: [IronPython] Debugging IronPython script code

Now is't working partly - i used a app.config  <microsoft.scripting debugMode="true"> which apearently does not setup debugging right.
What is not working is that I get only a disassembly  - no source code attached.
Is there something to setup before?

Rainer

Von: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] Im Auftrag von Dino Viehland
Gesendet: Montag, 13. Oktober 2008 07:15
An: Discussion of IronPython
Betreff: Re: [IronPython] Debugging IronPython script code

Oh, sorry, it looks like it needs to be a bool, not "true" in quotes...  With that in mind this works for me:

        Dictionary<String, object> options = new Dictionary<string,object>();
        options["Debug"] = true;
        ScriptEngine engine = Python.CreateEngine(options);
        ScriptSource source = engine.CreateScriptSourceFromFile("C:\\Users\\Dino\\test.py");
        source.Execute();

I can put breakpoints in test.py and hit them.

From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Rainer Worbis
Sent: Sunday, October 12, 2008 10:02 PM
To: Discussion of IronPython
Subject: Re: [IronPython] Debugging IronPython script code

No - i get the Call Stack showed below

[Lightweight Function]
>                Microsoft.Scripting.dll!Microsoft.Scripting.Runtime.OptimizedScriptCode.InvokeTarget(Microsoft.Linq.Expressions.LambdaExpression code = {Microsoft.Linq.Expressions.Expression<Microsoft.Scripting.Runtime.DlrMainCallTarget>}, Microsoft.Scripting.Runtime.Scope scope = {Microsoft.Scripting.Runtime.Scope}) + 0x1c6 bytes
                Microsoft.Scripting.dll!Microsoft.Scripting.ScriptCode.Run(Microsoft.Scripting.Runtime.Scope scope = {Microsoft.Scripting.Runtime.Scope}) + 0x42 bytes
                Microsoft.Scripting.dll!Microsoft.Scripting.Hosting.CompiledCode.Execute(Microsoft.Scripting.Hosting.ScriptScope scope = {Microsoft.Scripting.Hosting.ScriptScope}) + 0x77 bytes
...

Rainer

Von: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] Im Auftrag von Dino Viehland
Gesendet: Montag, 13. Oktober 2008 06:55
An: Discussion of IronPython
Betreff: Re: [IronPython] Debugging IronPython script code

If you right click in the call stack window and check Show External Code do you see the code then?

From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Rainer Worbis
Sent: Sunday, October 12, 2008 9:53 PM
To: Discussion of IronPython
Subject: Re: [IronPython] Debugging IronPython script code

I got as far as that - when the breakpoint is hit - VS pops up but not in some python code but in the call  to Execute - the python code is marked as external code.
So is there a possibility to have VS show the script code?

Rainer

Von: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] Im Auftrag von Dino Viehland
Gesendet: Sonntag, 12. Oktober 2008 21:21
An: Discussion of IronPython
Betreff: Re: [IronPython] Debugging IronPython script code

You can set DebugMode = true on a ScriptRuntimeSetup object.  If you're using the Python class you can pass a Dictionary object to CreateRuntime with "Debug" = "true" and we'll set it for you.

From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Rainer Worbis
Sent: Sunday, October 12, 2008 12:10 PM
To: Users at lists.ironpython.com
Subject: [IronPython] Debugging IronPython script code

Hallo all,

is there a possibility to debug IronPython code that is executed with ScriptSource.Execute or CompiledCode.Execute within VisualStudio?
Setting breakpoints in the python code will can be done by System.Diagnostics.Debugger.Break() - the code breaks but I don't know how to tell VS to get into my code.

Rainer

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20081013/09666bcf/attachment.html>


More information about the Ironpython-users mailing list