step through .py file in a .NET application written in C# in Visual Studio

Paul McGuire ptmcg at austin.rr.com
Tue Aug 7 09:24:24 EDT 2007


On Aug 6, 5:22 pm, Bo <bohema... at gmail.com> wrote:
> Hello All,
>
> I am experimenting IronPython in Visual Studio.  Here is what I have,
> what I did and what I want
>
> 1.  I have installed Visual Studio SDK 4.0 according to this bloghttp://blogs.msdn.com/aaronmar/archive/2006/02/16/a-bit-more-on-ironp...
>
> If I run Visual Studio under Experimental Hive, a Python file opened
> is color coded.
>
> 2.  Also, my computer has apparently installed some IronPython DLL
> because my Visual Studio can recoginize the following class:
> IronPython.Hosting.PythonEngine.
>
> If I declare something like the following in Visual Studio:
>
> public static class MyPythonClass {
>    private static IronPython.Hosting.PythonEngine   MY_ENGINE;
>   //suppose I have created an instance of PhythonEngine and assigned
> to MY_ENGINE
>    ............
>
> }
>
> If I do "Go to Definition" of PythonEngine, I can navigate to the
> Definition of PythonEngine, but it is from MetaData.
>
> 3.  In my .NET application (written in C#) , I can invoke the
> execution of an external python file using something like:
> MyPythonClass.MY_ENGINE.ExecuteFile("myPythonFileWithAbsolutePath.py")
>
> The python file (myPythonFileWithAbsolutePath.py) can be executed all
> right, but I want to step through it to debug it.  Any suggestions on
> how to do it?
>
> Thanks a bunch.
>
> Bo

Um, make sure you compile with debug?

I have coded in Boo, which is very Python-like, and it will step
through the debugger just fine, so IP should do the same in theory.
But I've not used IP, so all I can give are generic "are you sure it's
plugged in?" type of suggestions.

Hmm, upon rereading your post, I see that you want the debugger to
step through a separate file that was executed using ExecuteFile.
Unless there are some debug options on ExecuteFile, I'd say your
chances are slim, since the file being executed is not really part of
the image being debugged.  You could also try explicitly invoking the
debugger from within the file that you are loading, using (this works
from Boo):

    System.Diagnostics.Debugger.Launch()
    System.Diagnostics.Debugger.Break()


-- Paul




More information about the Python-list mailing list