Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Debugger Question: breakpoints


I apologize in advance if this is a dumb question.

Since several version ago, I am unable to view the values of variables in the debugger after the program breaks with an error. I have tried clicking on Break and on Continue, but I can't examine the values of variables after the error occurs.

Also, and this may be related, I get a window saying "no symbols loaded" and some things not found in the pdb files.  I don;t care for the low-level symbols. Is this related?

Do I have to set anything special in the debugger breakpoint settings?


0 Kudos
3 Replies
Black Belt

What you describe would be normal expected behavior for a "Release" configuration. Please check your VS project setting. The kind of information that you ask for is probably not available for such a configuration.

One of the compiler settings that gives you limited but useful debugging information is /traceback. Enable this option for your "Release" configuration.

0 Kudos
Black Belt Retired Employee

If the "no symbols loaded" messages are for DLLs that are not part of your application, ignore those.

When an exception occurs, a lot depends on how it gets handled in the language support library. For errors triggered by checks the compiler adds., or I/O errors, the library calls DebugBreak (a Windows API routine) to break into the debugger at that point, where your application code is still active. Some other errors, in particular floating point exceptions, get propagated through the various stack frames before the "last chance" handler reports the problem. In this case, you won't be able to view variables.

You can control what happens here in Visual Studio by opening Debug > Windows > Exception Settings. Then expand "Win32 Exceptions". Check the "Break when thrown" box for the exception type you are interested in.

0 Kudos
Black Belt

In addition to the responses given, when a break occurs (deep) within a system, you may need to use the Call Stack window of the debugger, and set the focus up to the point in your code that made the call into the deeper library routines.

If you are attempting to debug a DLL from an application you wrote, at (Debug Break), you may need to specify the location of the symbols (the .pdb for the DLL)

Debug | Options | Symbols | ...brows for .pdb

FWIW Debugging Release Build is somewhat of an art.

Jim Dempsey

0 Kudos