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

cyej8jka  于 2023-01-13  发布在  其他
关注(0)|答案(6)|浏览(211)

我知道我可以用Process.Start()在代码中启动一个进程。是否还可以将调试器附加到该进程?
不是从代码 * 本身 *,而只是一种方法来做吗?

wd2eg0qa

wd2eg0qa1#

您可以使用Tools | Attach to Process执行attach to a running process。如果它是Web应用程序,您可以通过连接到aspnet_wp.exew3wp.exe来连接到它。
若要回答有关如何以编程方式附加到进程的问题:

下面是处理该问题的其他堆栈溢出问题:

ny6fqffe

ny6fqffe2#

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

pwuypxnk

pwuypxnk3#

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

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());
vql8enpb

vql8enpb4#

您可以在任何值得使用的调试器中实现这一点。
Visual Studio有一个应该能满足您的需要。
如果你需要更高级的控制,试试OllyDbg,它是一个反汇编器,所以你可以在汇编级操作你的程序,这将给予你完全的控制,但也可能是信息过载。

t3psigkw

t3psigkw5#

在Visual Studio 2015中,单击菜单中的“调试〉附加到进程”。或者,也可以使用快捷键Ctrl+Alt+ P。

rvpgvaaj

rvpgvaaj6#

我使用vs 2022,它处于调试状态|附加到进程。(已附加ss)

相关问题