Tim Rae
Tim Rae

Reputation: 3186

How can I use the Python Tools for Visual Studio mixed mode debugger with Enthought Canopy Distribution?

I use Enthought Canopy as my python distribution due to its suitability for scientific computation. However, I use pytools in Visual Studio as my IDE primarily because of its superior debugging compared to other IDEs for Windows.

Since version 2.0, pytools provides a native C-debugger (mixed mode debugger or MMD) which is very useful for debugging when utilizing cython or including some native C code, and is also supposed to be much faster than the standard debugger, which makes it feasible to debug computationally expensive code, which would otherwise run too slow with debugging enabled.

Unfortunately the pytools MMD requires debug symbols to work, which are available for the standard python distribution, however they note that

If you're using a third-party Python distribution such as ActiveState Python or Enthought Canopy, you will need to contact the authors of that distribution to provide you with symbols.

I have not been able to find these debug symbols available anywhere from Enthought, so I want to know:

a) Do Enthought plan to make the debug symbols available for pytools users

b) If not, what are some possible workarounds?

Upvotes: 3

Views: 1111

Answers (2)

Jonathan March
Jonathan March

Reputation: 5810

Enthought Canopy 1.2, to be released later this month, includes full PTVS integration including debug symbols.

Upvotes: 4

Pavel Minaev
Pavel Minaev

Reputation: 101665

(I'm the PTVS developer who wrote mixed-mode debugger for 2.0)

The requirement for symbols is a hard requirement, unfortunately - it's at the core of how the debugger works. So the only workaround is to use Python binaries that have symbols available for them - either stock ones from python.org, or building them yourself. This only pertains to python??.dll, and, if you want ctypes stepping support, _ctypes.pyd.

I do not know whether Enthought build of Python is significantly different from regular Python, or whether they are drop-in compatible. But it may be worth a try as a workaround.

Upvotes: 3

Related Questions