从Visual Studio调试器中分离一个进程

64

我的问题与这个问题有些相似:“如何在不停止进程的情况下停止调试(或分离进程)?”

但我想要从一个进程中分离。

例如,我有一个Windows窗体应用程序,也要附加到一个Windows服务。 我只想从服务中分离(全部分离将删除所有执行的调试,并且我将无法调试其他应用程序)。

P.S:如果可能,请提及Visual Studio 2008和2010。

4个回答

98
在进程窗口(调试->窗口->进程)中,右键单击您想要分离的进程名称,在快捷菜单上单击“分离进程”选项。

1
@Umer 嗯,这很奇怪。无论如何,请尝试通过“进程”窗口中的“分离进程”工具栏按钮来完成此操作。 - Centro
1
在我的情况下它不起作用。终止进程按钮是启用的。你能帮我吗? - User1551892
如果在“调试”->“窗口”下没有任何“进程”选项怎么办? - Shaggydog
@Shaggydog 启用的功能取决于 Visual Studio 版本(Community、Professional...)。也许这就是你的情况。 - Hoborg
@User1551892 我也是这样,但我认为这是因为未处理的异常(至少在我的情况下)导致进程停止,因此VS中的某些内容决定在该上下文中分离没有意义。 - William
显示剩余3条评论

14

想要分享一下快捷键组合(在VS2013中):按Ctrl+Alt+Z可以打开进程窗口。只有当至少有一个进程附加时,该窗口才会弹出。


1
如果您使用的是Visual Studio Express,那么就没有“进程窗口”,我没有意识到如何只分离一个进程。

请问您是不知道如何在Express中分离(detach),还是已经找到了方法,请告诉我们具体步骤。 - Patrick M

1

如果您正在进行混合模式调试,那么无论是“调试”>“全部分离”选项还是像Centro在此主题中的回答中提到的分离都不起作用。

当我以仅本机或仅托管模式进行调试时,在“调试”>“窗口”>“进程”对话框中可以看到“调试”>“全部分离”选项或“分离进程”选项。

至少目前我已经在Visual Studio 2005上进行了测试。

参考:https://developercommunity.visualstudio.com/t/cannot-detach-from-process-the-debugdetach-all-opt/225642


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接