Debuggers are programs that help developers analyze the behavior of software. Typically in the past, debuggers have been thought of as software development tools. But recently, debuggers have come to forefront as a tool for software reverse engineering. Debuggers offer significant advantages over a static analysis tool because debuggers can illustrate software behavior while the program operates. For example, arguments to functions can be viewed and control and data flow can be sampled. By reducing the time it takes to arrive at program understanding, this reduces the cost of reverse engineering significantly.
While IDA-Pro has typically been thought of as static analysis tool, it has recently added debugging capability but still has not gained wide acceptance as a mature debugger.