MATLAB: CDA Request: Debug Level-2 Fortran S-function

simulink

I have a Level-2 FORTRAN S-Function that I would like to debug with Visual Studio. How can I do this?

Best Answer

Because a Level-2 FORTRAN S-Function contains both FORTRAN and C code, it is necessary to first MEX the FORTRAN source code into object files with debugging symbols, and then link the resulting objects with the runtime libraries for the FORTRAN compiler.
For example, given a FORTRAN source file foo.F and C source file bar.c, one could use the following MATLAB code to create the MEX file with debugging symbols:
 
mex -g -c foo.F
mex -g -L\[... path to runtime libraries ...]\ foo.obj bar.c
Once the debug MEX file has been created, you can start Visual Studio, set breakpoints in the source files where desired, attach MSVC to the current MATLAB process, and debug as you would for a C S-Function.