The debugger supports the following types of breakpoints:
are
triggered when the line they are set on is about to be executed.
are triggered when the entry
points they apply to are entered.
are triggered before the
disassembly instruction at a particular address is executed.
,
which are triggered when execution changes data at a specific address.
are triggered when a DLL
or object module is loaded.Event breakpoints are set in the Breakpoints view by clicking the Manage Compiled Language Event breakpoints push button and then, in the Manage Event Breakpoints dialog, selecting the event type that you want the debugger to catch. These breakpoints include all standard signals, and a number of events of interest, such as C++ exceptions, and calls to library functions like exit(). For POSIX signals, you can choose to be notified of all occurrences of each individual signal (handled signals), or only those occurrences when no handler has been provided (unhandled signals).
Line
breakpoints can be set in the editor by double-clicking on the ruler
area to the left of an executable line or by a right-click pop-up
menu action in the source editor
- or they can be set
by wizard in the Breakpoints view
. If you want a thread-specific
Line breakpoint, you must set it from the Breakpoints view while
there is an active debug session. Entry breakpoints can be set in
the Modules view by right-clicking an entry point and selecting Set
entry breakpoint from the pop-up menu - or they can be
set by wizard in the Breakpoints view. In addition, you can right-click
the debug target (or one of its threads or stack frames) in the Debug
view and select Options > Stop At All Function Entries from
the pop-up menu to stop at all entry points (this option is also available
in the Breakpoints view pop-up menu). All other breakpoint types are
set by wizard in the Breakpoints view. To access the wizards for setting
breakpoints, right-click in the Breakpoints view and select Add
Breakpoint from the pop-up menu. This will expand to a
menu that allows you to choose the breakpoint type that you want to
set. When you use the wizard to set a breakpoint, you can specify
optional breakpoint parameters and set conditional breakpoints (see
the related topic).
The Breakpoints view displays a list of all breakpoints for all debug sessions. You can reduce the number of breakpoints displayed in one of the following ways:
You can also group breakpoints for easier viewing in the Breakpoints view. Breakpoints can be grouped by breakpoints (the standard list of breakpoints), breakpoint types (for example, grouped by line and entry breakpoints), and by breakpoint working sets (groups that you define yourself). To group breakpoints, select the Breakpoints view down-arrow icon and then select the grouping that you want to display in the Breakpoints view. When you click Advanced in this menu, a dialog box opens which allows you to created nested groupings. To create working sets, choose Working Sets from the Breakpoints view down-arrow icon menu.
The breakpoint entries in the list provide you, in brackets, with a summary of the breakpoints' properties. With pop-up menu options, you can add breakpoints, remove breakpoints, and enable or disable breakpoints. You can also edit breakpoint properties with a pop-up menu option. With push buttons in the Breakpoints view, you can remove breakpoints.
When you choose to edit a breakpoint, the wizard by which it was created opens (if you did not use a wizard to create the breakpoint, the wizard for the breakpoint type opens). While in the wizard, you can click Next > or < Back to view or edit the breakpoint settings in the wizard. Once you are finished, click Finish to change the breakpoint or click Cancel to exit the wizard without making any changes.
Breakpoints can be enabled and disabled with pop-up menus in the Breakpoints view or the editor and by check box in the Breakpoints view. When a breakpoint is enabled, it will cause all threads to suspend whenever it is hit. When a breakpoint is disabled, it will not cause threads to suspend. For information about enabling and disabling breakpoints, see the related topic.
In
the Breakpoints view, there are two indicators to the left of a set
breakpoint (
). To
the far left is a check box indicating whether the breakpoint is enabled.
When enabled, the check box contains a check mark. (See pointer A.
in the following diagram.) When disabled, the check box does not contain
a check mark. (See pointer B. in the following diagram.)

An indicator with a check mark overlay, shows a breakpoint that has been successfully installed by the debug engine. If the breakpoint is enabled, this indicator is filled; if the breakpoint is disabled, this indicator is not filled. In the editor, line breakpoints are indicated by an indicator with a check mark overlay, indicating a breakpoint that has been successfully installed by the debug engine (if the breakpoint is enabled, this indicator is filled - if the breakpoint is disabled, this indicator is not filled).
Breakpoints must be installed to suspend execution. It is possible to add a breakpoint that is not valid for the current debug session. This breakpoint will not be installed until it is part of a debug session that includes a debug engine that will recognize the breakpoint.
In the editor, line and entry breakpoint indicators are displayed in the marker bar to the left of the editor. Indicators for line, entry, address, watch, and load breakpoints are displayed in the Breakpoints view.
While in the Breakpoints view, the source editor will open to the location of a breakpoint if you do one of the following: