Debuggers are sophisticated programs that allow the execution of other applications in a controlled manner; they allow the execution, observation and modification of another program. Debuggers use a variety of techniques related to fault isolation software, and tool support that generates programs and operating system. Debuggers behave against the debugging program similar to some interpreters, executing the instructions one by one.
Because writing an interpreter (machine-code interpreters are called “emulators“) is a very complicated task, the debuggers use certain services provided by the operating system.
The operating system is itself a huge tool that makes software fault isolation: it allows for parallel execution… read more +