I have been experimenting with the debugging support for the PythonEngine. When I use the following code I have several problems.

 

PythonEngine _pe;

EngineOptions options = new EngineOptions();

options.ClrDebuggingEnabled = true;

_pe = new PythonEngine(options);

_pe.ExecuteFile(@"  <script>  ");

 

Test script:

 

x = 1

y = 2

 

def Add(a, b):

    return a + b

 

z = Add(x, y)

print z

 

 

I opened the script file in Visual Studio and placed a breakpoint at the beginning of the file. The application runs and breaks at the correct location. Stepping through the lines works, but I cannot see any values of the global variables.

When I try to step into the function I get a notification that there is no source code available and I must show the disassembly. After I step several times through the assembly instructions I can return to the original source code. Inside the function I can see the values of the function variables.

I have tried debugging ipy.exe with the script and there I can see the global variables, but I still have the problem with stepping into a function. In ipy.exe the script file is executed in a different way. Using the same method I can also see the global variables with my PythonEngine instance. I apparently don’t need to set ClrDebuggingEnabled in this case.

 

PythonEngine _pe;

_pe = new PythonEngine();

OptimizedEngineModule engineModule = _pe.CreateOptimizedModule(@"  <script>  ", "__main__", true);

engineModule.Execute();

 

Are you required to use an OptimizedEngineModule to be able to debug completely? Am I forgetting some settings for debugging? Can I step directly into a function without getting into the assembly instructions?

 

_______________________________________________
users mailing list
users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to