CLion 2018.1 Help

Using Breakpoints

Breakpoints are source code markers used to trigger actions during a debugging session.

Breakpoint types

Breakpoints are a simple but very important debugging instrument which allows you to suspend a program upon reaching a certain breakpoint, and examine the behavior of the program and its components at that point. A breakpoint is defined by one or more conditions that determine when a program's execution should be interrupted. These conditions depend on the breakpoint type and configuration.

CLion lets you create breakpoints of several types. Each breakpoint type supported by CLion addresses different debugging needs and has its own individual settings.

CLion enables you to set the following types of breakpoints:

    Line breakpoint

    These breakpoints are assigned to lines of source code and are used to target a particular section for debugging.

    Line breakpoints are triggered when the program reaches the specified line of source code, before it is executed. The line of code that contains a set breakpoint, is marked with a red stripe; once such line of code is reached, the marking stripe changes to blue.

    Temporary line breakpoint

    Temporary line breakpoint is a subset of the line breakpoint. The only difference is that the breakpoint of that type is immediately removed when hit.

    Exception breakpoint

    CLion provides exception breakpoints for C/C++ and JavaScript.

    Exception breakpoints are triggered when the specified exception is thrown or caught, depending on settings. Unlike the line breakpoints, which require specific source references, exception breakpoints apply globally to the exception condition, rather than to a particular code reference.

    Symbolic breakpoint

    Symbolic breakpoints stop program execution when a specific function or method starts executing. Symbolic breakpoint can be triggered within a specific module (modules) only or within all modules, as required. Refer to Adding Symbolic Breakpoint for details.

    Breakpoints icons and statuses

    When a breakpoint is set, the editor displays a breakpoint icon in the gutter area to the left of the affected source code. A breakpoint icon denotes status of a breakpoint, and provides useful information about its type, location, and action.

    The icons serve as convenient shortcuts for managing breakpoints. Clicking an icon removes the breakpoint. Successive use of Alt - click on an icon toggles its state between enabled and disabled. The settings of a breakpoint are shown in a tooltip when a mouse pointer hovers over a breakpoint icon in the gutter area of the editor.

    The table below summarizes the possible breakpoint states:

    StatusLineTemporary LineExceptionSymbolicDescription
    Enableddb set breakpointbreakpointTemporaryN/AN/AShown at design-time or during the debugging session.
    Disableddisabled breakpointdisabled breakpointN/AN/AIndicates that nothing happens when the breakpoint is hit.
    Conditionally disableddb dep line breakpointdb dep line breakpointN/AN/AThis state is assigned to breakpoints when they depend on another breakpoint to be activated.
    Activatedverified breakpointverified breakpointdb exception breakpointmethod breakpointShown during debugging session when a breakpoint is reached.

    When the button debug mute breakpoints is pressed in the toolbar of the Debug tool window, all the breakpoints in a project are muted, and their icons become grey: muted breakpoint.

    Last modified: 24 July 2018

    See Also