【发布时间】:2013-07-16 17:46:30
【问题描述】:
当调试器开始使用代码时,我正在尝试附加到第二个进程:
DTE dte = BuildaPackage.VS_DTE;
EnvDTE.Process localServiceEngineProcess = dte.Debugger.LocalProcesses
.Cast<EnvDTE.Process>()
.FirstOrDefault(process => process.Name.Contains("ServiceMonitor"));
if (localServiceEngineProcess != null) {
localServiceEngineProcess.Attach();
}
调试器未运行时工作正常,但在VS_DTE.Events.DebuggerEvents.OnEnterRunMode 事件期间尝试附加时尝试附加时,出现错误:
A macro called a debugger action which is not allowed while responding to an event or while being run because a breakpoint was hit.
如何在调试器启动时附加到另一个进程?
【问题讨论】:
-
您想在开始调试解决方案中的应用程序时附加到已经运行的进程(不在您的解决方案中)?询问是因为您已经可以在同一个解决方案中调试多个应用程序 - 使用解决方案/启动应用程序设置。
-
解决方案中没有多个项目,而是我希望 IDE 插件 能够在用户启动他们的应用程序时附加。我有一个单独的
ServiceMonitor服务器来托管用户的应用程序,所以我希望 IDE 在用户开始调试时自动附加到该服务器。
标签: c# visual-studio envdte