Developer Guide and Reference

ID 767251
Date 10/31/2024
Public
Document Table of Contents

Debug a Program that Encounters a Signal or Exception

If your program encounters a signal (exception) at runtime, you may want to recompile and relink with certain command-line options before debugging the cause. The following will make it easier to debug the program:

  • Use the fpe option to control the handling of floating point exceptions.

  • To generate sufficient symbol table information and debug unoptimized code, as with other debugging tasks, use the -g (Linux*) or /debug:full (Windows*) compiler option.

Debug an Exception in the Microsoft Debugger

You can request that the program always stop when a certain type of exception occurs. Because certain exceptions are caught by default by the Intel® Fortran runtime library, your program stops in the runtime library code. In most cases, you want the program to stop in your program's source code instead.

To change how an exception is handled in the Microsoft debugger:

  1. In the Debug menu, select Exceptions.

  2. View the displayed exceptions.

  3. Select Windows Exceptions. Select each type of exception to be changed and change its handling using the radio buttons.

  4. Start program execution using Start in the Debug menu.

  5. When the exception occurs, you can now view the source line being executed, examine current variable values, execute the next instruction, and so on, to help you better understand that part of your program.

  6. After you locate the error and correct the program, consider whether you want to reset the appropriate type of exception to "Use Parent Setting" before you debug the program again.

For machine exceptions, you can use the just-in-time debugging feature to debug your programs as they run outside of the visual development environment. To do this, set the following items:

  • In Tools > Options, select Native in the Debugging Just-In Time category.

  • Set environment variable FOR_IGNORE_EXCEPTIONS to TRUE. For more information, see Supported Environment Variables.