1. A method for providing simulation through a debugger comprising the steps of: providing a live debugger operable to allow a user to debug an application in a live mode; providing a simulator operable to read recorded data from an earlier point in time in an execution of the application; providing a simulation mode operable to allow the user to interact with the recorded data using the debugger; multiplexing the debugger between the application in the live mode and the simulator that reads the recorded data; simultaneously interacting with multiple streams of recorded data using the simulation mode, wherein the simulation mode allows the user to interact with the multiple streams of recorded data using debugging commands used in the live mode, the debugging commands are selected from the group consisting of a step into command, a step over command, a breakpoint command, a run command, and a step out command; concurrently displaying live debugger state associated with the live mode, and, simulated application state associated with the simulation mode of the multiple streams of recorded data, the live debugger state and the simulated application state displayed at a same time; and receiving a command from the user to interact with the recorded data.