Default breakpoints
There are a number of default breakpoints that stop your program when particular conditions are met. You can enable/disable these while your program is running using
.Stop at exit/_exit (Disabled by default)
When enabled, your program is paused as it is about to end under normal exit conditions. Your program pauses both before and after any exit handlers have been executed.
Stop at abort/fatal MPI Error (Enabled by default)
When enabled, your program is paused as it about to end after an error has been triggered. This includes MPI and non-MPI errors.
Stop on throw (C++ and Python exceptions) (Disabled by default)
When enabled, your program is paused whenever an exception is thrown (regardless of whether or not it will be caught). Due to the nature of exception handling, you may not be able to step your program properly at this point. Instead, you should play your program or use the Run to here feature.
The raised Python exception is displayed as
allinea_exception
in the Locals view.Stop on catch (C++ exceptions) (Disabled by default)
As for Stop on throw, but triggered when your program catches a thrown exception. Again, you may have trouble stepping your program.
Stop on unhandled Python exception (Enabled by default)
When enabled, your Python program is paused when an exception is raised but never caught by your program.
You can inspect the stack, including locals, as if you would have stopped the program when the exception was raised. The raised Python exception is displayed as
allinea_exception
in the Locals view.Your program will terminate if you continue the program.
Stop at fork
Your program stops when your program forks (that is, calls the fork system call to create a copy of the current process). The new process is added to your existing session, and can be debugged along with the original process.
Stop at exec
When your program calls the exec system call, your program stops at the main function (or program body for Fortran) of the new executable.
Stop on CUDA kernel launch
When debugging CUDA GPU code, this pauses your program at the entry point of each kernel launch.