The OpenVMS Debugger helps you locate run-time programming or logic errors, also known as bugs. You use the debugger with a program that has been compiled and linked successfully but does not run correctly. For example, the program might give incorrect output, go into an infinite loop, or terminate prematurely. You locate errors with the debugger by observing and manipulating your program interactively as it executes. The debugger lets you: - Display and edit the source code for your program, and browse through other source code files. - Monitor, examine, and change program variable and data structure values and examine their type. - Examine and manipulate the currently active functions on the call stack. - Set breakpoints that suspend program execution or issue debugger command sequences. - Step through execution one line of source code or machine instruction at a time. - Disassemble and examine machine code; examine and modify machine-register values. - Customize the debugging environment. These are the basic debugging techniques. After you are satisfied that you have found the error in the program, you can edit the source code and compile, link, and execute the corrected version. As you use the debugger and its documentation, you will discover variations on the basic techniques. You can also customize the debugger to meet your own needs. The debugger is a symbolic debugger. You can specify variable names, routine names, and so on, precisely as they appear in your source code. You do not need to specify memory addresses or registers when referring to program locations, but you can if you want. You can also use the debugger with programs written in any of the languages identified in the topic Debugger Support for Languages.