Visual studio 什么';这是';附加到流程&x27;与';开始调试';?

Visual studio 什么';这是';附加到流程&x27;与';开始调试';?,visual-studio,debugging,Visual Studio,Debugging,我是编程新手。 我知道只有开始调试之前。也许开始调试适合一些小应用开发得更好 我发现VisualStudioIDE提供了另一种附加到进程以供使用的方法。 何时&为什么必须使用附加调试 如多线程应用程序调试。客户端/服务应用程序调试。等等。谢谢。有时您需要调试由另一个程序启动的进程 例如,您需要一个可靠的解决方案,为了防止访问冲突、内存泄漏和其他几乎无法恢复的内容,您有一个主程序和几个辅助程序。主程序启动辅助程序并向其传递参数。如何调试不打算由主程序以外的任何程序启动的辅助程序 您可以使用“附加到

我是编程新手。 我知道只有开始调试之前。也许开始调试适合一些小应用开发得更好

我发现VisualStudioIDE提供了另一种附加到进程以供使用的方法。 何时&为什么必须使用附加调试


如多线程应用程序调试。客户端/服务应用程序调试。等等。谢谢。

有时您需要调试由另一个程序启动的进程

例如,您需要一个可靠的解决方案,为了防止访问冲突、内存泄漏和其他几乎无法恢复的内容,您有一个主程序和几个辅助程序。主程序启动辅助程序并向其传递参数。如何调试不打算由主程序以外的任何程序启动的辅助程序

您可以使用“附加到该进程”

通常是这样做的:插入一条语句,在一段时间内阻塞辅助程序,例如,调用15秒。然后,请您请求主程序启动worker程序。当工作程序启动时,它会阻塞,您现在有15秒的时间连接到它


通过这种方式,您可以调试几乎所有的问题—早期启动阶段的问题、错误的参数等,这些问题无法通过“带调试运行”可靠地重现。

从VS开始调试启动VS Web服务器的实例并将调试器附加到该实例上


“附加到进程”允许您附加到任何进程并对其进行调试,通常您会对在IIS中运行代码的w3wp.exe实例执行此操作。如果您不想从启动进程开始就进行调试,则附加到进程非常有用。例如,调试通常会降低执行速度,因此可以更快地启动应用程序,使其处于出现错误的状态,然后附加调试器


如果您已经有了启动进程的外部方法,而您不希望或无法将其导入IDE,那么它也很有用。

当您无法从Visual Studio运行应用程序时,通常会使用附加到进程

例如,如果它是一个服务,或者它是一个运行了很长时间的进程,现在您想开始调试它

有时,您还希望调试远程进程,而不是在您的计算机上调试—您可以使用“附加到进程”来完成