我们正在创建一个Visual Studio Debugger扩展,需要通过自定义启动程序启动正在调试的应用程序,该启动程序设置运行时(而不是CLR或Win32)并在新进程中启动目标应用程序。换句话说,自定义启动器负责创建新进程。在VS调试器中,通常通过调用VsShellUtilities.LaunchDebugger()并提供其dlo字段设置为DEBUG_LAUNCH_OPERATION.DLO_CreateProcess的VsDebugTargetInfo对象以及要启动和调试的exe文件的坐标来启动调试器。这并不符合我们的推出模式。
还有一个dlo值DEBUG_LAUNCH_OPERATION.DLO_Custom似乎是为了这个目的(使用clsIdCustom字段来指示启动器),但是当前的文档说过时已经过时并将我们引导回DEBUG_LAUNCH_OPERATION.DLO_CreateProcess,但不仅不适合我们的模型,而且在这种情况下使用clsidCustom来指示调试引擎(如果它只是一个)。
那么,推荐VS调试器并使用我们的自定义启动器来配置和启动运行时(以及其中的应用程序)的推荐方法是什么?
答案 0 :(得分:2)
根据Visual Studio API文档,它仅提供DLO_CreateProcess来启动进程。您可以使用dwClsidCount和pclsidList指定要使用的调试引擎。
以下示例介绍如何通过VSIX项目调用自定义启动程序。
https://code.msdn.microsoft.com/Visual-Studio-Debug-Engine-c2e21c0e