Hi -- Got something of a tricky question. I am writing an extensibility package (in C++ ATL, but that's not really relevant) and am debugging it by attaching to a Devenv.exe instance that uses the experimental registry hive. My package instantiates
a custom virtual machine and the bootstraps a custom environment on top of it. I used to do this all in a single instance of Visual Studio, but my code was the actual project and it would grab its host IDE's DTE pointer from the Running Object Table and then
add breakpoints programmatically as part of its initialization sequence. I am now trying to move this code over to being a Visual Studio package so that it can execute separately from an IDE-hosted project, and in doing so am now using the separate experimental-hive
Visual Studio instance to actually execute the package. This means that my debugger and the code being debugged are now running under separate IDE instances and the DTE pointer I get hold of is to the target IDE and not the one hosting the debugger. So I can't
just add breakpoints to the DTE debugger object I get, because it's the wrong debugger object. Nothing is being debugged via the experimental-hive debugger; in fact no project has even been loaded and the debugger object pointer actually comes back as null.
But it's the other IDE that's running the debugger anyway, so I somehow have to find a way to add breakpoints to its breakpoint collection from the target it is debugging (which obviously isn't even in the same process). I'm assuming we're talking about some
kind of DCOM call, assuming I can even find a way to get a remote pointer in he first place. Is this just too weird? Or do I have a prayer of figuring this out? Any thoughts would be greatly appreciated. Regards, Mike
↧