Breakpoint
From Wikipedia, the free encyclopedia
A breakpoint, in software development, is an intentional stopping or pausing place in a program, put in place for debugging purposes. More generally, a breakpoint is a means of acquiring knowledge about a program during its execution. During the interruption, the programmer inspects the test environment (logs, memory, files, etc.) to find out whether the program functions as expected.
In practice, a breakpoint consists of one or more conditions that determine when a program's execution should be interrupted.
The most common form of a breakpoint is one where the program's execution is interrupted before a programmer-specified instruction is executed. This is often referred to as an instruction breakpoint.
Other kinds of conditions can also be used, such as the reading, writing, or modification of a specific location in an area of memory. This is often referred to as a data breakpoint, or a watchpoint.
Breakpoints can also be used to interrupt execution at a particular time, or upon a keystroke etc.
Many processors include hardware support for breakpoints (typically instruction and data breakpoints). Such hardware may include limitations, for example not allowing breakpoints on instructions located in branch delay slots. This kind of limitation is imposed by the microarchitecture of the processor, so varies from processor to processor.
Without hardware support, debuggers have to implement breakpoints in software, which, particularly for data breakpoints, can impact the performance of the application being debugged.