diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..ed3c8b5e --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "MIEngine"] + path = MIEngine + url = https://github.com/PistonDevelopers/MIEngine.git + branch = master diff --git a/MIEngine b/MIEngine new file mode 160000 index 00000000..126314a7 --- /dev/null +++ b/MIEngine @@ -0,0 +1 @@ +Subproject commit 126314a7262ef7ca40745d4c1b66f61350d8f6aa diff --git a/VisualRust.Project/DefaultRustLauncher.cs b/VisualRust.Project/DefaultRustLauncher.cs index c38aac67..9bd3d620 100644 --- a/VisualRust.Project/DefaultRustLauncher.cs +++ b/VisualRust.Project/DefaultRustLauncher.cs @@ -3,6 +3,7 @@ using System.IO; using System.Text; using System.Xml; +using Microsoft.MIDebugEngine; using Microsoft.VisualStudio; using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudioTools; @@ -60,10 +61,7 @@ public int LaunchFile(string file, bool debug) { if (debug) { - if (_projectConfig.DebugType == Constants.BuiltinDebugger) - LaunchInBuiltinDebugger(file); - else - LaunchInGdbDebugger(file); + LaunchInGdbDebugger(file); } else { @@ -75,29 +73,12 @@ public int LaunchFile(string file, bool debug) } - private void LaunchInBuiltinDebugger(string file) - { - VsDebugTargetInfo4[] targets = new VsDebugTargetInfo4[1]; - targets[0].dlo = (uint)DEBUG_LAUNCH_OPERATION.DLO_CreateProcess; - targets[0].guidLaunchDebugEngine = Constants.NativeOnlyEngine; - targets[0].bstrExe = file; - if (!string.IsNullOrEmpty(_debugConfig.CommandLineArgs)) - targets[0].bstrArg = _debugConfig.CommandLineArgs; - if (!string.IsNullOrEmpty(_debugConfig.WorkingDir)) - targets[0].bstrCurDir = _debugConfig.WorkingDir; - - VsDebugTargetProcessInfo[] results = new VsDebugTargetProcessInfo[targets.Length]; - - IVsDebugger4 vsDebugger = (IVsDebugger4)_project.GetService(typeof(SVsShellDebugger)); - vsDebugger.LaunchDebugTargets4((uint)targets.Length, targets, results); - } - private void LaunchInGdbDebugger(string file) { VsDebugTargetInfo4[] targets = new VsDebugTargetInfo4[1]; targets[0].dlo = (uint)DEBUG_LAUNCH_OPERATION.DLO_CreateProcess; targets[0].bstrExe = file; - targets[0].guidLaunchDebugEngine = Constants.GdbEngine; + targets[0].guidLaunchDebugEngine = new Guid(EngineConstants.EngineId); string gdbPath = GetDebuggingProperty("DebuggerLocation"); if (string.IsNullOrWhiteSpace(gdbPath)) diff --git a/VisualRust.Project/VisualRust.Project.csproj b/VisualRust.Project/VisualRust.Project.csproj index 9f6809ae..d07c990d 100644 --- a/VisualRust.Project/VisualRust.Project.csproj +++ b/VisualRust.Project/VisualRust.Project.csproj @@ -57,6 +57,8 @@ False + + @@ -162,6 +164,10 @@ {cacb60a9-1e76-4f92-8831-b134a658c695} Microsoft.VisualStudio.Project + + {6D2688FE-6FD8-44A8-B96A-6037457F72A7} + MIDebugEngine + {9cf556ab-76fe-4c3d-ad0a-b64b3b9989b4} VisualRust.Build diff --git a/VisualRust.sln b/VisualRust.sln index c876acef..ae530957 100644 --- a/VisualRust.sln +++ b/VisualRust.sln @@ -28,19 +28,34 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisualRust.Test.Integration EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisualRust.Shared", "VisualRust.Shared\VisualRust.Shared.csproj", "{B99CC9EB-90F2-4040-9E66-418CC7042153}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MIDebugEngine", "MIEngine\src\MIDebugEngine\MIDebugEngine.csproj", "{6D2688FE-6FD8-44A8-B96A-6037457F72A7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MICore", "MIEngine\src\MICore\MICore.csproj", "{12CC862D-95B7-4224-8E16-B928C6333677}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug.Lab|Any CPU = Debug.Lab|Any CPU + Debug.Lab|Mixed Platforms = Debug.Lab|Mixed Platforms + Debug.Lab|x86 = Debug.Lab|x86 Debug|Any CPU = Debug|Any CPU Debug|Mixed Platforms = Debug|Mixed Platforms Debug|x86 = Debug|x86 Debug-CI|Any CPU = Debug-CI|Any CPU Debug-CI|Mixed Platforms = Debug-CI|Mixed Platforms Debug-CI|x86 = Debug-CI|x86 + Release.Lab|Any CPU = Release.Lab|Any CPU + Release.Lab|Mixed Platforms = Release.Lab|Mixed Platforms + Release.Lab|x86 = Release.Lab|x86 Release|Any CPU = Release|Any CPU Release|Mixed Platforms = Release|Mixed Platforms Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Debug.Lab|Any CPU.ActiveCfg = Debug-CI|Any CPU + {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Debug.Lab|Any CPU.Build.0 = Debug-CI|Any CPU + {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Debug.Lab|Mixed Platforms.ActiveCfg = Debug-CI|Any CPU + {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Debug.Lab|Mixed Platforms.Build.0 = Debug-CI|Any CPU + {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Debug.Lab|x86.ActiveCfg = Debug-CI|Any CPU {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Debug|Any CPU.Build.0 = Debug|Any CPU {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -51,11 +66,21 @@ Global {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Debug-CI|Mixed Platforms.ActiveCfg = Debug-CI|Any CPU {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Debug-CI|Mixed Platforms.Build.0 = Debug-CI|Any CPU {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Debug-CI|x86.ActiveCfg = Debug-CI|Any CPU + {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Release.Lab|Any CPU.ActiveCfg = Release|Any CPU + {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Release.Lab|Any CPU.Build.0 = Release|Any CPU + {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Release.Lab|Mixed Platforms.ActiveCfg = Release|Any CPU + {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Release.Lab|Mixed Platforms.Build.0 = Release|Any CPU + {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Release.Lab|x86.ActiveCfg = Release|Any CPU {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Release|Any CPU.ActiveCfg = Release|Any CPU {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Release|Any CPU.Build.0 = Release|Any CPU {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Release|Mixed Platforms.Build.0 = Release|Any CPU {8B7B30F7-17C1-4CE8-BAF4-88B086AF7B25}.Release|x86.ActiveCfg = Release|Any CPU + {E983E989-F83A-4643-896A-AD496BF647D0}.Debug.Lab|Any CPU.ActiveCfg = Debug-CI|Any CPU + {E983E989-F83A-4643-896A-AD496BF647D0}.Debug.Lab|Any CPU.Build.0 = Debug-CI|Any CPU + {E983E989-F83A-4643-896A-AD496BF647D0}.Debug.Lab|Mixed Platforms.ActiveCfg = Debug-CI|Any CPU + {E983E989-F83A-4643-896A-AD496BF647D0}.Debug.Lab|Mixed Platforms.Build.0 = Debug-CI|Any CPU + {E983E989-F83A-4643-896A-AD496BF647D0}.Debug.Lab|x86.ActiveCfg = Debug-CI|Any CPU {E983E989-F83A-4643-896A-AD496BF647D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E983E989-F83A-4643-896A-AD496BF647D0}.Debug|Any CPU.Build.0 = Debug|Any CPU {E983E989-F83A-4643-896A-AD496BF647D0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -66,11 +91,21 @@ Global {E983E989-F83A-4643-896A-AD496BF647D0}.Debug-CI|Mixed Platforms.ActiveCfg = Debug-CI|Any CPU {E983E989-F83A-4643-896A-AD496BF647D0}.Debug-CI|Mixed Platforms.Build.0 = Debug-CI|Any CPU {E983E989-F83A-4643-896A-AD496BF647D0}.Debug-CI|x86.ActiveCfg = Debug-CI|Any CPU + {E983E989-F83A-4643-896A-AD496BF647D0}.Release.Lab|Any CPU.ActiveCfg = Release|Any CPU + {E983E989-F83A-4643-896A-AD496BF647D0}.Release.Lab|Any CPU.Build.0 = Release|Any CPU + {E983E989-F83A-4643-896A-AD496BF647D0}.Release.Lab|Mixed Platforms.ActiveCfg = Release|Any CPU + {E983E989-F83A-4643-896A-AD496BF647D0}.Release.Lab|Mixed Platforms.Build.0 = Release|Any CPU + {E983E989-F83A-4643-896A-AD496BF647D0}.Release.Lab|x86.ActiveCfg = Release|Any CPU {E983E989-F83A-4643-896A-AD496BF647D0}.Release|Any CPU.ActiveCfg = Release|Any CPU {E983E989-F83A-4643-896A-AD496BF647D0}.Release|Any CPU.Build.0 = Release|Any CPU {E983E989-F83A-4643-896A-AD496BF647D0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {E983E989-F83A-4643-896A-AD496BF647D0}.Release|Mixed Platforms.Build.0 = Release|Any CPU {E983E989-F83A-4643-896A-AD496BF647D0}.Release|x86.ActiveCfg = Release|Any CPU + {CACB60A9-1E76-4F92-8831-B134A658C695}.Debug.Lab|Any CPU.ActiveCfg = Debug-CI|Any CPU + {CACB60A9-1E76-4F92-8831-B134A658C695}.Debug.Lab|Any CPU.Build.0 = Debug-CI|Any CPU + {CACB60A9-1E76-4F92-8831-B134A658C695}.Debug.Lab|Mixed Platforms.ActiveCfg = Debug-CI|Any CPU + {CACB60A9-1E76-4F92-8831-B134A658C695}.Debug.Lab|Mixed Platforms.Build.0 = Debug-CI|Any CPU + {CACB60A9-1E76-4F92-8831-B134A658C695}.Debug.Lab|x86.ActiveCfg = Debug-CI|Any CPU {CACB60A9-1E76-4F92-8831-B134A658C695}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CACB60A9-1E76-4F92-8831-B134A658C695}.Debug|Any CPU.Build.0 = Debug|Any CPU {CACB60A9-1E76-4F92-8831-B134A658C695}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -81,11 +116,21 @@ Global {CACB60A9-1E76-4F92-8831-B134A658C695}.Debug-CI|Mixed Platforms.ActiveCfg = Debug-CI|Any CPU {CACB60A9-1E76-4F92-8831-B134A658C695}.Debug-CI|Mixed Platforms.Build.0 = Debug-CI|Any CPU {CACB60A9-1E76-4F92-8831-B134A658C695}.Debug-CI|x86.ActiveCfg = Debug-CI|Any CPU + {CACB60A9-1E76-4F92-8831-B134A658C695}.Release.Lab|Any CPU.ActiveCfg = Release|Any CPU + {CACB60A9-1E76-4F92-8831-B134A658C695}.Release.Lab|Any CPU.Build.0 = Release|Any CPU + {CACB60A9-1E76-4F92-8831-B134A658C695}.Release.Lab|Mixed Platforms.ActiveCfg = Release|Any CPU + {CACB60A9-1E76-4F92-8831-B134A658C695}.Release.Lab|Mixed Platforms.Build.0 = Release|Any CPU + {CACB60A9-1E76-4F92-8831-B134A658C695}.Release.Lab|x86.ActiveCfg = Release|Any CPU {CACB60A9-1E76-4F92-8831-B134A658C695}.Release|Any CPU.ActiveCfg = Release|Any CPU {CACB60A9-1E76-4F92-8831-B134A658C695}.Release|Any CPU.Build.0 = Release|Any CPU {CACB60A9-1E76-4F92-8831-B134A658C695}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {CACB60A9-1E76-4F92-8831-B134A658C695}.Release|Mixed Platforms.Build.0 = Release|Any CPU {CACB60A9-1E76-4F92-8831-B134A658C695}.Release|x86.ActiveCfg = Release|Any CPU + {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Debug.Lab|Any CPU.ActiveCfg = Debug-CI|Any CPU + {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Debug.Lab|Any CPU.Build.0 = Debug-CI|Any CPU + {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Debug.Lab|Mixed Platforms.ActiveCfg = Debug-CI|Any CPU + {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Debug.Lab|Mixed Platforms.Build.0 = Debug-CI|Any CPU + {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Debug.Lab|x86.ActiveCfg = Debug-CI|Any CPU {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Debug|Any CPU.Build.0 = Debug|Any CPU {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -96,23 +141,43 @@ Global {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Debug-CI|Mixed Platforms.ActiveCfg = Debug-CI|Any CPU {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Debug-CI|Mixed Platforms.Build.0 = Debug-CI|Any CPU {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Debug-CI|x86.ActiveCfg = Debug-CI|Any CPU + {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Release.Lab|Any CPU.ActiveCfg = Release|Any CPU + {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Release.Lab|Any CPU.Build.0 = Release|Any CPU + {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Release.Lab|Mixed Platforms.ActiveCfg = Release|Any CPU + {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Release.Lab|Mixed Platforms.Build.0 = Release|Any CPU + {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Release.Lab|x86.ActiveCfg = Release|Any CPU {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Release|Any CPU.ActiveCfg = Release|Any CPU {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Release|Any CPU.Build.0 = Release|Any CPU {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Release|Mixed Platforms.Build.0 = Release|Any CPU {9CF556AB-76FE-4C3D-AD0A-B64B3B9989B4}.Release|x86.ActiveCfg = Release|Any CPU + {272707AC-4E61-460E-B925-762E7FEB1CDD}.Debug.Lab|Any CPU.ActiveCfg = Debug-CI|x86 + {272707AC-4E61-460E-B925-762E7FEB1CDD}.Debug.Lab|Mixed Platforms.ActiveCfg = Debug-CI|x86 + {272707AC-4E61-460E-B925-762E7FEB1CDD}.Debug.Lab|Mixed Platforms.Build.0 = Debug-CI|x86 + {272707AC-4E61-460E-B925-762E7FEB1CDD}.Debug.Lab|x86.ActiveCfg = Debug-CI|x86 + {272707AC-4E61-460E-B925-762E7FEB1CDD}.Debug.Lab|x86.Build.0 = Debug-CI|x86 {272707AC-4E61-460E-B925-762E7FEB1CDD}.Debug|Any CPU.ActiveCfg = Debug|x86 {272707AC-4E61-460E-B925-762E7FEB1CDD}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 {272707AC-4E61-460E-B925-762E7FEB1CDD}.Debug|x86.ActiveCfg = Debug|x86 {272707AC-4E61-460E-B925-762E7FEB1CDD}.Debug-CI|Any CPU.ActiveCfg = Debug|x86 {272707AC-4E61-460E-B925-762E7FEB1CDD}.Debug-CI|Mixed Platforms.ActiveCfg = Debug|x86 {272707AC-4E61-460E-B925-762E7FEB1CDD}.Debug-CI|x86.ActiveCfg = Debug|x86 + {272707AC-4E61-460E-B925-762E7FEB1CDD}.Release.Lab|Any CPU.ActiveCfg = Release|x86 + {272707AC-4E61-460E-B925-762E7FEB1CDD}.Release.Lab|Mixed Platforms.ActiveCfg = Release|x86 + {272707AC-4E61-460E-B925-762E7FEB1CDD}.Release.Lab|Mixed Platforms.Build.0 = Release|x86 + {272707AC-4E61-460E-B925-762E7FEB1CDD}.Release.Lab|x86.ActiveCfg = Release|x86 + {272707AC-4E61-460E-B925-762E7FEB1CDD}.Release.Lab|x86.Build.0 = Release|x86 {272707AC-4E61-460E-B925-762E7FEB1CDD}.Release|Any CPU.ActiveCfg = Release|x86 {272707AC-4E61-460E-B925-762E7FEB1CDD}.Release|Any CPU.Build.0 = Release|x86 {272707AC-4E61-460E-B925-762E7FEB1CDD}.Release|Mixed Platforms.ActiveCfg = Release|x86 {272707AC-4E61-460E-B925-762E7FEB1CDD}.Release|Mixed Platforms.Build.0 = Release|x86 {272707AC-4E61-460E-B925-762E7FEB1CDD}.Release|x86.ActiveCfg = Release|x86 {272707AC-4E61-460E-B925-762E7FEB1CDD}.Release|x86.Build.0 = Release|x86 + {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Debug.Lab|Any CPU.ActiveCfg = Debug-CI|Any CPU + {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Debug.Lab|Any CPU.Build.0 = Debug-CI|Any CPU + {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Debug.Lab|Mixed Platforms.ActiveCfg = Debug-CI|Any CPU + {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Debug.Lab|Mixed Platforms.Build.0 = Debug-CI|Any CPU + {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Debug.Lab|x86.ActiveCfg = Debug-CI|Any CPU {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Debug|Any CPU.Build.0 = Debug|Any CPU {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -123,11 +188,21 @@ Global {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Debug-CI|Mixed Platforms.ActiveCfg = Debug-CI|Any CPU {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Debug-CI|Mixed Platforms.Build.0 = Debug-CI|Any CPU {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Debug-CI|x86.ActiveCfg = Debug-CI|Any CPU + {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Release.Lab|Any CPU.ActiveCfg = Release|Any CPU + {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Release.Lab|Any CPU.Build.0 = Release|Any CPU + {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Release.Lab|Mixed Platforms.ActiveCfg = Release|Any CPU + {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Release.Lab|Mixed Platforms.Build.0 = Release|Any CPU + {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Release.Lab|x86.ActiveCfg = Release|Any CPU {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Release|Any CPU.ActiveCfg = Release|Any CPU {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Release|Any CPU.Build.0 = Release|Any CPU {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Release|Mixed Platforms.Build.0 = Release|Any CPU {59D94B96-1AF7-46F2-8790-AAB6DFAE8D9A}.Release|x86.ActiveCfg = Release|Any CPU + {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Debug.Lab|Any CPU.ActiveCfg = Debug-CI|Any CPU + {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Debug.Lab|Any CPU.Build.0 = Debug-CI|Any CPU + {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Debug.Lab|Mixed Platforms.ActiveCfg = Debug-CI|Any CPU + {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Debug.Lab|Mixed Platforms.Build.0 = Debug-CI|Any CPU + {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Debug.Lab|x86.ActiveCfg = Debug-CI|Any CPU {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Debug|Any CPU.Build.0 = Debug|Any CPU {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -138,11 +213,21 @@ Global {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Debug-CI|Mixed Platforms.ActiveCfg = Debug-CI|Any CPU {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Debug-CI|Mixed Platforms.Build.0 = Debug-CI|Any CPU {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Debug-CI|x86.ActiveCfg = Debug-CI|Any CPU + {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Release.Lab|Any CPU.ActiveCfg = Release|Any CPU + {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Release.Lab|Any CPU.Build.0 = Release|Any CPU + {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Release.Lab|Mixed Platforms.ActiveCfg = Release|Any CPU + {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Release.Lab|Mixed Platforms.Build.0 = Release|Any CPU + {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Release.Lab|x86.ActiveCfg = Release|Any CPU {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Release|Any CPU.ActiveCfg = Release|Any CPU {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Release|Any CPU.Build.0 = Release|Any CPU {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Release|Mixed Platforms.Build.0 = Release|Any CPU {475C4DF2-4D4B-4F2C-9F27-414148DD6F11}.Release|x86.ActiveCfg = Release|Any CPU + {C68F80B6-62AC-44EB-8557-88761524B495}.Debug.Lab|Any CPU.ActiveCfg = Debug-CI|Any CPU + {C68F80B6-62AC-44EB-8557-88761524B495}.Debug.Lab|Any CPU.Build.0 = Debug-CI|Any CPU + {C68F80B6-62AC-44EB-8557-88761524B495}.Debug.Lab|Mixed Platforms.ActiveCfg = Debug-CI|Any CPU + {C68F80B6-62AC-44EB-8557-88761524B495}.Debug.Lab|Mixed Platforms.Build.0 = Debug-CI|Any CPU + {C68F80B6-62AC-44EB-8557-88761524B495}.Debug.Lab|x86.ActiveCfg = Debug-CI|Any CPU {C68F80B6-62AC-44EB-8557-88761524B495}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C68F80B6-62AC-44EB-8557-88761524B495}.Debug|Any CPU.Build.0 = Debug|Any CPU {C68F80B6-62AC-44EB-8557-88761524B495}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -153,9 +238,19 @@ Global {C68F80B6-62AC-44EB-8557-88761524B495}.Debug-CI|Mixed Platforms.ActiveCfg = Debug-CI|Any CPU {C68F80B6-62AC-44EB-8557-88761524B495}.Debug-CI|Mixed Platforms.Build.0 = Debug-CI|Any CPU {C68F80B6-62AC-44EB-8557-88761524B495}.Debug-CI|x86.ActiveCfg = Debug-CI|Any CPU + {C68F80B6-62AC-44EB-8557-88761524B495}.Release.Lab|Any CPU.ActiveCfg = Release|Any CPU + {C68F80B6-62AC-44EB-8557-88761524B495}.Release.Lab|Any CPU.Build.0 = Release|Any CPU + {C68F80B6-62AC-44EB-8557-88761524B495}.Release.Lab|Mixed Platforms.ActiveCfg = Release|Any CPU + {C68F80B6-62AC-44EB-8557-88761524B495}.Release.Lab|Mixed Platforms.Build.0 = Release|Any CPU + {C68F80B6-62AC-44EB-8557-88761524B495}.Release.Lab|x86.ActiveCfg = Release|Any CPU {C68F80B6-62AC-44EB-8557-88761524B495}.Release|Any CPU.ActiveCfg = Debug|Any CPU {C68F80B6-62AC-44EB-8557-88761524B495}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU {C68F80B6-62AC-44EB-8557-88761524B495}.Release|x86.ActiveCfg = Debug|Any CPU + {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Debug.Lab|Any CPU.ActiveCfg = Debug-CI|Any CPU + {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Debug.Lab|Any CPU.Build.0 = Debug-CI|Any CPU + {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Debug.Lab|Mixed Platforms.ActiveCfg = Debug-CI|Any CPU + {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Debug.Lab|Mixed Platforms.Build.0 = Debug-CI|Any CPU + {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Debug.Lab|x86.ActiveCfg = Debug-CI|Any CPU {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Debug|Any CPU.Build.0 = Debug|Any CPU {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -164,9 +259,19 @@ Global {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Debug-CI|Any CPU.ActiveCfg = Debug-CI|Any CPU {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Debug-CI|Mixed Platforms.ActiveCfg = Debug-CI|Any CPU {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Debug-CI|x86.ActiveCfg = Debug-CI|Any CPU + {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Release.Lab|Any CPU.ActiveCfg = Release|Any CPU + {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Release.Lab|Any CPU.Build.0 = Release|Any CPU + {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Release.Lab|Mixed Platforms.ActiveCfg = Release|Any CPU + {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Release.Lab|Mixed Platforms.Build.0 = Release|Any CPU + {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Release.Lab|x86.ActiveCfg = Release|Any CPU {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Release|Any CPU.ActiveCfg = Debug|Any CPU {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Release|Mixed Platforms.ActiveCfg = Debug|Any CPU {5276348D-B99D-408B-A16E-4B2C527E7EA0}.Release|x86.ActiveCfg = Debug|Any CPU + {B99CC9EB-90F2-4040-9E66-418CC7042153}.Debug.Lab|Any CPU.ActiveCfg = Debug|Any CPU + {B99CC9EB-90F2-4040-9E66-418CC7042153}.Debug.Lab|Any CPU.Build.0 = Debug|Any CPU + {B99CC9EB-90F2-4040-9E66-418CC7042153}.Debug.Lab|Mixed Platforms.ActiveCfg = Debug|Any CPU + {B99CC9EB-90F2-4040-9E66-418CC7042153}.Debug.Lab|Mixed Platforms.Build.0 = Debug|Any CPU + {B99CC9EB-90F2-4040-9E66-418CC7042153}.Debug.Lab|x86.ActiveCfg = Debug|Any CPU {B99CC9EB-90F2-4040-9E66-418CC7042153}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B99CC9EB-90F2-4040-9E66-418CC7042153}.Debug|Any CPU.Build.0 = Debug|Any CPU {B99CC9EB-90F2-4040-9E66-418CC7042153}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -177,11 +282,66 @@ Global {B99CC9EB-90F2-4040-9E66-418CC7042153}.Debug-CI|Mixed Platforms.ActiveCfg = Debug|Any CPU {B99CC9EB-90F2-4040-9E66-418CC7042153}.Debug-CI|Mixed Platforms.Build.0 = Debug|Any CPU {B99CC9EB-90F2-4040-9E66-418CC7042153}.Debug-CI|x86.ActiveCfg = Debug|Any CPU + {B99CC9EB-90F2-4040-9E66-418CC7042153}.Release.Lab|Any CPU.ActiveCfg = Release|Any CPU + {B99CC9EB-90F2-4040-9E66-418CC7042153}.Release.Lab|Any CPU.Build.0 = Release|Any CPU + {B99CC9EB-90F2-4040-9E66-418CC7042153}.Release.Lab|Mixed Platforms.ActiveCfg = Release|Any CPU + {B99CC9EB-90F2-4040-9E66-418CC7042153}.Release.Lab|Mixed Platforms.Build.0 = Release|Any CPU + {B99CC9EB-90F2-4040-9E66-418CC7042153}.Release.Lab|x86.ActiveCfg = Release|Any CPU {B99CC9EB-90F2-4040-9E66-418CC7042153}.Release|Any CPU.ActiveCfg = Release|Any CPU {B99CC9EB-90F2-4040-9E66-418CC7042153}.Release|Any CPU.Build.0 = Release|Any CPU {B99CC9EB-90F2-4040-9E66-418CC7042153}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {B99CC9EB-90F2-4040-9E66-418CC7042153}.Release|Mixed Platforms.Build.0 = Release|Any CPU {B99CC9EB-90F2-4040-9E66-418CC7042153}.Release|x86.ActiveCfg = Release|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Debug.Lab|Any CPU.ActiveCfg = Debug.Lab|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Debug.Lab|Any CPU.Build.0 = Debug.Lab|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Debug.Lab|Mixed Platforms.ActiveCfg = Debug.Lab|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Debug.Lab|Mixed Platforms.Build.0 = Debug.Lab|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Debug.Lab|x86.ActiveCfg = Debug.Lab|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Debug|x86.ActiveCfg = Debug|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Debug-CI|Any CPU.Build.0 = Debug|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Debug-CI|Mixed Platforms.ActiveCfg = Debug|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Debug-CI|Mixed Platforms.Build.0 = Debug|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Debug-CI|x86.ActiveCfg = Debug|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Release.Lab|Any CPU.ActiveCfg = Release.Lab|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Release.Lab|Any CPU.Build.0 = Release.Lab|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Release.Lab|Mixed Platforms.ActiveCfg = Release.Lab|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Release.Lab|Mixed Platforms.Build.0 = Release.Lab|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Release.Lab|x86.ActiveCfg = Release.Lab|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Release|Any CPU.Build.0 = Release|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {6D2688FE-6FD8-44A8-B96A-6037457F72A7}.Release|x86.ActiveCfg = Release|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Debug.Lab|Any CPU.ActiveCfg = Debug.Lab|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Debug.Lab|Any CPU.Build.0 = Debug.Lab|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Debug.Lab|Mixed Platforms.ActiveCfg = Debug.Lab|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Debug.Lab|Mixed Platforms.Build.0 = Debug.Lab|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Debug.Lab|x86.ActiveCfg = Debug.Lab|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Debug|x86.ActiveCfg = Debug|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Debug-CI|Any CPU.Build.0 = Debug|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Debug-CI|Mixed Platforms.ActiveCfg = Debug|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Debug-CI|Mixed Platforms.Build.0 = Debug|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Debug-CI|x86.ActiveCfg = Debug|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Release.Lab|Any CPU.ActiveCfg = Release.Lab|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Release.Lab|Any CPU.Build.0 = Release.Lab|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Release.Lab|Mixed Platforms.ActiveCfg = Release.Lab|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Release.Lab|Mixed Platforms.Build.0 = Release.Lab|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Release.Lab|x86.ActiveCfg = Release.Lab|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Release|Any CPU.Build.0 = Release|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {12CC862D-95B7-4224-8E16-B928C6333677}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/VisualRust/ProvideDebugEngineAttribute.cs b/VisualRust/ProvideDebugEngineAttribute.cs new file mode 100644 index 00000000..14a32f4b --- /dev/null +++ b/VisualRust/ProvideDebugEngineAttribute.cs @@ -0,0 +1,58 @@ +using Microsoft.VisualStudio.Shell; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VisualRust +{ + class ProvideDebugEngineAttribute : RegistrationAttribute + { + readonly string name; + readonly Type provider; + readonly Type engine; + readonly string id; + + public ProvideDebugEngineAttribute(string name, Type programProvider, Type debugEngine, string id) + { + this.name = name; + this.id = id; + this.provider = programProvider; + this.engine = debugEngine; + } + + public override void Register(RegistrationContext context) + { + var engineKey = context.CreateKey("AD7Metrics\\Engine\\" + id); + engineKey.SetValue("Name", name); + engineKey.SetValue("CLSID", engine.GUID.ToString("B")); + engineKey.SetValue("ProgramProvider", provider.GUID.ToString("B")); + engineKey.SetValue("PortSupplier", "{708C1ECA-FF48-11D2-904F-00C04FA302A1}"); + + engineKey.SetValue("Attach", 1); + engineKey.SetValue("AlwaysLoadLocal", 1); + engineKey.SetValue("AlwaysLoadProgramProviderLocal", 1); + engineKey.SetValue("Disassembly", 1); + engineKey.SetValue("EnginePriority", 0x51); + engineKey.SetValue("SetNextStatement", 1); + + var debuggerRegKey = context.CreateKey("CLSID\\" + engine.GUID.ToString("B")); + debuggerRegKey.SetValue("Assembly", engine.Assembly.GetName().Name); + debuggerRegKey.SetValue("Class", engine.FullName); + debuggerRegKey.SetValue("InprocServer32", context.InprocServerPath); + debuggerRegKey.SetValue("CodeBase", Path.Combine(context.ComponentPath, engine.Module.Name)); + + var provRegKey = context.CreateKey("CLSID\\" + provider.GUID.ToString("B")); + provRegKey.SetValue("Assembly", provider.Assembly.GetName().Name); + provRegKey.SetValue("Class", provider.FullName); + provRegKey.SetValue("InprocServer32", context.InprocServerPath); + provRegKey.SetValue("CodeBase", Path.Combine(context.ComponentPath, provider.Module.Name)); + } + + public override void Unregister(RegistrationContext context) + { + } + } +} diff --git a/VisualRust/VisualRust.csproj b/VisualRust/VisualRust.csproj index 540b5c95..55fe3f3a 100644 --- a/VisualRust/VisualRust.csproj +++ b/VisualRust/VisualRust.csproj @@ -73,6 +73,8 @@ + + @@ -195,6 +197,7 @@ Component + @@ -266,6 +269,10 @@ {cacb60a9-1e76-4f92-8831-b134a658c695} Microsoft.VisualStudio.Project + + {6D2688FE-6FD8-44A8-B96A-6037457F72A7} + MIDebugEngine + {e983e989-f83a-4643-896a-ad496bf647d0} RustLexer diff --git a/VisualRust/VisualRustPackage.cs b/VisualRust/VisualRustPackage.cs index fce363e9..726397e7 100644 --- a/VisualRust/VisualRustPackage.cs +++ b/VisualRust/VisualRustPackage.cs @@ -4,6 +4,7 @@ using System.Runtime.InteropServices; using System.ComponentModel.Design; using System.ComponentModel.Composition; +using Microsoft.MIDebugEngine; using Microsoft.Win32; using Microsoft.VisualStudio; using Microsoft.VisualStudio.Shell.Interop; @@ -66,6 +67,7 @@ namespace VisualRust [ProvideOptionPage(typeof(RustOptionsPage), "Visual Rust", "General", 110, 113, true)] [ProvideOptionPage(typeof(DebuggingOptionsPage), "Visual Rust", "Debugging", 110, 114, true)] [ProvideProfile(typeof(RustOptionsPage), "Visual Rust", "General", 110, 113, true)] + [ProvideDebugEngine("Rust GDB", typeof(AD7ProgramProvider), typeof(AD7Engine), EngineConstants.EngineId)] public class VisualRustPackage : CommonProjectPackage { private RunningDocTableEventsListener docEventsListener;