1. A non-transitory computer readable medium comprising instructions which, when executed by one or more hardware processors, causes performance of operations for debugging an application comprising: invoking by one or more computing devices, a first thread to execute an application currently being debugged by a debugger, the application including at least one breakpoint; invoking an external service during execution of the application being debugged by the debugger, the external service including functions remotely located from the application and the debugger, wherein at least one function of the functions returns output to at least one variable of the application; terminating, using at least one processor, the first thread at the at least one breakpoint; releasing the first thread to a pool of threads at the at least one breakpoint; recording information comprising a state of the at least one variable, external invocation information corresponding to the invocation of the external service, and an identification of at least one scoped variable upon termination of the first thread; and based on the state of the at least one variable, invoking a second thread of the pool of threads to re-execute the application, wherein any new external services encountered during the re-execution of the application are ignored and wherein the re-execution proceeds using the external invocation information.