The debug engine sample is contained within this zip file. The solution contains the managed front end (written in C#), the mixed mode C++ backend, and the project launcher to demonstrate the launch scenarios. To use the sample, download the zip file to your machine and decompress it. Open the solution in Visual Studio 2008 as an administrator. Build the sample and run it. Visual Studio should open under the debugger. Open a Visual C++ project in the new instance of Visual Studio, build it, and then go to the project launcher tab under the tools menu. A form should open that shows the name of your project. Choose launch on the form and the VC++ project should launch under the sample debug engine.
NOTE: if you are not running Vista, you will need to modify the addins path in the project launcher project from %usersproflie%\username\documents\visual studio 2008\addins to %usersproflie%\username\my documents\visual studio 2008\addins because of the change in the name of the my documents folder.
The sample is split into three separate projects:
1) A front end implemented in C# which implements the AD7 interfaces and interacts with the SDM. The root object of this project is AD7Engine which implements IDebugEngine2. This project is called Microsoft.VisualStudio.Debugger.SampleEngine.
2) A back end implemented in mixed mode C++ which interacts with the win32 debugging API and DIA, the public symbol interfaces. This project is called Microsoft.VisualStudio.Debugger.SampleEngineWorker.
3) A Visual Studio Addin which is used to launch Visual C++ projects using the new engine. This project is named ProjectLauncher. It adds a new command button “ProjectLauncher” to the Visual Studio Tools menu which will launch a form that displays the current projects in Visual Studio that can be launched with the new engine.
This release fixes some issues with the self-registration and resolves a race condition during process launch. Several of the stopping events were being sent as synchronous stopping when they should have been asynchronous. The lastest update fixes that.