如何在Visual Studio中将进程附加到调试器?

时间:2009-06-12 12:49:26

标签: .net visual-studio debugging

我知道我可以使用Process.Start()在代码中启动流程。 是否也可以将调试器附加到该进程?

不是来自代码本身,而只是一种方法吗?

5 个答案:

答案 0 :(得分:23)

您可以attach to a running process使用Tools | Attach to Process。如果它是Web应用程序,您可以通过附加到aspnet_wp.exew3wp.exe附加到它。

回答有关如何以编程方式附加到流程的问题:

以下是其他Stack Overflow问题:

答案 1 :(得分:3)

在visual studio中单击工具|附加到流程。然后选择适当的服务。

答案 2 :(得分:2)

你可以在几乎任何有价值的调试器中执行此操作。

Visual Studio可以满足您的需求。

如果您需要更高级的控制,请尝试OllyDbg,这是一个反汇编程序,因此您可以在程序集级别实际操作程序。这将为您提供完全控制,但也可能是信息过载。

答案 3 :(得分:1)

在Visual Studio 2015中,单击“'调试>附加到流程'在菜单中。或者,有一个快捷键Ctrl + Alt + P.

答案 4 :(得分:1)

您可以在代码中执行此操作。

public static void Attach(DTE2 dte)
        {
            var processes = dte.Debugger.LocalProcesses;
            foreach (var proc in processes.Cast<EnvDTE.Process>().Where(proc => proc.Name.IndexOf("YourProcess.exe") != -1))
                proc.Attach();
        }

        internal static DTE2 GetCurrent()
        {
            var dte2 = (DTE2)Marshal.GetActiveObject("VisualStudio.DTE.12.0"); // For VisualStudio 2013

            return dte2;
        }

用法:

Attach(GetCurrent());