- Breakpoint
A breakpoint, in
software development , is an intentional stopping or pausing place in a program, put in place fordebugging purposes. More generally, a breakpoint is a means of acquiring knowledge about a program during its execution. During the interruption, theprogrammer 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 slot s. This kind of limitation is imposed by themicroarchitecture of the processor, so varies from processor to processor.Without hardware support,
debuggers have to implement breakpoints in software. For instruction breakpoints, this is a comparatively simple task of replacing the instruction at the location of the breakpoint. But implementing data breakpoints in software can greatly reduce the performance of the application being debugged. [ [http://sources.redhat.com/gdb/current/onlinedocs/gdbint_3.html#SEC15 GDB Internals -- Watchpoints] ]Some programming language implementations expose their debugging functions for use by other programs.For example, some
FORTRAN dialects have anAT
statement, which was originally intended to act as an instruction breakpoint.
Python implements a debugger accessible from a Python program. [ [http://docs.python.org/lib/module-pdb.html Python Library Reference: The Python Debugger] ] These facilities can be and are [ [http://entrian.com/goto/ entrian.com - goto and comefrom for Python] ] abused to act like theCOMEFROM statement.ee also
*
IBM OLIVER (CICS interactive test/debug)
*SIMON (Batch Interactive test/debug)
*SIMMON References
Wikimedia Foundation. 2010.