Hi --
I have a custom language and project system that I am adding to Visual Studio and have created an add-in package that both loads a debugger extension (built off the DKM debug engine) and installs a custom project type (via the ProvideProjectFactory attribute on the package class, and also inheriting this class from ProjectPackage and not just Package).
The debugger extension is configured by the vsdconfig mechanism to listen for when native Windows modules get loaded, and I can trigger breakpoints in the extension if I load an appropriate project type into the experimental debug instance of Visual Studio and run it under the debugger. But I am interested in activating the debugger extension not when the user executes a loaded project, but when the project itself is actually loading. The reason for this is that I would like to instantiate my core language runtime at this time and have it debugged by the original Visual Studio instance's debugger that is debugging the extension. In essence I want to be able to debug my language runtime along with the VSIX package itself as part of the VSIX extension. I also want my language's runtime not to be explicitly visible to the user of my custom project type, but loading and operating entirely in the background.
Don't know how much of this made sense, but there are a couple of ways I could imagine accomplishing if the mechanism does indeed support it. If it turns out that my debugger extension can only be activated when the experimental instance's own debugger is activated, then I could imagine possibly being able to manipulate the experimental instance's automation objects to make this happen by launching and executing a background process. But if it turns out that the debugger extension will activate when any native windows module is launched, independent of whether it happens as part of executing the experimental instance's debugger, then I could imagine launching a module directly from my project factory whenever one of my projects is created or loaded and having it trigger a breakpint in my debugger extension.
Once again, not sure if any of this is intelligble, but if some kind soul who has better understanding of debugger extensions than I could take a shot at helping me understand how debugger extensions are actually activated, I would be enormously grateful and seriously in your debt.
Thanks very much.
Regards,
Mike