【发布时间】:2009-10-26 18:22:22
【问题描述】:
我正在构建一个内部开发工具来管理我们开发环境中常用的不同流程。该工具显示被监视进程的列表,指示它们的运行状态并允许启动或停止每个进程。
我想从我的工具中添加将调试器附加到受监视进程的功能,而不是进入 Visual Studio 中的 Debug -> 附加到进程 和找到过程。
我的目标是拥有类似Debugger.Launch() 的东西,它会显示可用 Visual Studio 的列表。我不能使用Debugger.Launch(),因为它会在进行调用的进程上启动调试器。我需要像Debugger.Launch(processId) 这样的东西。
如何实现此功能?
一种解决方案可以是在每个被监控进程中实现一个命令,以便在从监控工具收到命令时调用Debugger.Launch(),但我更喜欢不需要修改被监控进程代码的东西。
附加问题:
使用Debugger.Launch() 时,未列出已附加调试器的 Visual Studio 实例。 Visual Studio 不限于一个附加的调试器,您可以在使用 Debug → 附加到进程时附加多个进程。
在使用Debugger.Launch() 或替代方法时如何绕过此限制?
【问题讨论】: