1
Vote

Add out-of-the box support for native FORTRAN code debugging

description

I'm trying to debug FORTRAN DLL using PTVS 2.0.10620 + VS 2012 and it seems to work only when I use attach to process (edit python code, add raw_input(), start using command-line, attach to process, press enter in console). This is time consuming, it would be much better to be able to debug directly from VS using Debug As Script / F5 / Run Test (all of them).

I've uploaded demo video here: http://screencast.com/t/Vi1mhofwmmP.

A sample solution containing Python and FORTRAN projects is attached. I've used Intel Fortran 13 which integrates with VS 2012.

file attachments

comments

pminaev wrote Oct 18, 2013 at 5:38 PM

There shouldn't be anything special about Fortran here; if it's a native DLL with symbols in the format that VS understands, it should just work with no special support from our debugger.

Looking at the sample solution, I see that "Enable native code debugging" checkbox is not set in project properties for the Python project (on the Debug tab). Can you try with that enabled?

We have a separate feature request for mixed-mode unit test debugging: https://pytools.codeplex.com/workitem/1383

Debug as Script is trickier. We don't want to make this always enable mixed-mode, because for people who only want to debug Python, the experience is not on par with pure Python debugger (e.g. with respect to object expansion, expression evaluation, exception handling etc). When there is a project, we provide a choice by means of the project option as described above, but Debug as Script is all about running .py files without a project. We might need to add a couple more separate commands - "Debug as Script (with native code debugging)" or something like that. I'd prefer to have a separate issue for that, so that it is easier to track - feel free to file that.

pminaev wrote Oct 18, 2013 at 5:39 PM

I tried to repro using the provided project, but unfortunately it doesn't run for me because the required dependency libifcoremdd.dll is missing.