Patent ID: 7716650

Claim:
A method of non-destructive debugging of an add-in, comprising: starting a debugger; starting a debugee host application including host application functionality executing in a main application thread on a computing device; establishing a connection between a debugger controller associated with the debugger and a debugee controller associated with the debugee host application, the debugee controller running in a secondary thread of the debugee host application on the computing device; loading said add-in into an isolated environment created therefor in the main application thread on the computing device and associated with said debugee host application, the isolated environment providing isolation so that the add-in can be unloaded from the main application thread without affecting any other add-in or the host application functionality in the main application thread; raising an event handled by said add-in; interacting, by the debugger, with the isolated environment of said add-in independently of the host application functionality of said debugee host application in response to the raised event, the interacting including the debugger controller communicating with the debugee controller to unload the add-in from the main application thread without killing the main application thread having the host application functionality; and upon concluding debugging of the add-in, re-loading the add-in into the main application thread having the host application functionality and executing the host application with the re-loaded add-in in a normal, non-debugging context without the isolated environment.