1. A computer-readable storage medium containing executable components that when executed on one or more processors implement an integrated development environment and a common language runtime environment, comprising: a source code component comprising high-level source code of a computer software program; an assembly comprising an intermediate language component and metadata associated with the source code component, the intermediate language component is compiled to create native code associated with the software program; a user interface that facilitates debugging of the software program; an application program interface as part of the integrated development environment that facilitates communication between the user and a common language runtime environment running native code, the integrated development environment receiving a breakpoint event from the common language runtime environment when the native code is suspended at a breakpoint, facilitating editing of the high-level source code, determining legality of an edit as each change associated with the edit is made, building the edit when it is determined to be legal, sending information associated with the edited software program to the common language runtime environment after the edit is determined by the integrated development environment to be legal, and facilitating execution of the edited software program in the common language runtime environment, wherein the edit is determined to be legal when the integrated development environment determines that the common language runtime environment can apply the edits without error; and an edit and continue component as part of the common language runtime environment that, in response to receiving notification of an edit to a function associated with the high-level source code from the integrated development environment while the associated native code is running, suspends execution of the native code at a breakpoint, sends notification of the suspension to the integrated development environment, provides current instruction pointer information for a pre-edited version of the function, and receives new instruction pointer information associated with a new version of the function, the common language runtime environment continuing execution of the native code from the breakpoint until a remap breakpoint is reached and subsequently performing a remap operation to facilitate continued execution based on the new instruction pointer information.