1. A method performed by a computer system having a processor and an operating system with native and non-native subsystems for debugging an application program of the non-native subsystem using a debugger designed for use with the native subsystem, comprising: receiving an extensibility mechanism for the debugger, the extensibility mechanism configured to invoke an application program interface (API) of the debugger to add a listener thread to the non-native subsystem; receiving by the processor an indication to debug the application program of the non-native subsystem, wherein the non-native subsystem complies with a first operating system interface specification but the debugger executes in the native subsystem that complies with a second operating system interface specification, wherein the non-native subsystem exposes a different application program interface than the native subsystem, and both the non-native subsystem and the native subsystem operate in the same operating system; attaching to the application program for use with the non-native subsystem; receiving an indication that the application program has started a new process, the new process associated with the non-native subsystem; attaching to an executable component operating in the new process; and upon detecting an exception, indicating to the listener thread to detach and then to reattach after the non-native subsystem has handled the exception.