1. A system for debugging a software application, the system comprising: a debug agent, being in an executable form and stored in a computer-readable medium, configured to be combined with an executable form of the software application, and being configured to monitor events from the software application during run-time; embedding logic, including instructions stored in a computer-readable medium that when executed embeds the debug agent into the executable form of the software application; and debugger logic configured to receive data from the debug agent relating to the monitored events and to communicate debugging requests to the debug agent allowing a user to dynamically debug the software application.