我知道我可以用Process.Start()在代码中启动一个进程。是否还可以将调试器附加到该进程?不是从代码 * 本身 *,而只是一种方法来做吗?
Process.Start()
wd2eg0qa1#
您可以使用Tools | Attach to Process执行attach to a running process。如果它是Web应用程序,您可以通过连接到aspnet_wp.exe或w3wp.exe来连接到它。若要回答有关如何以编程方式附加到进程的问题:
Tools | Attach to Process
aspnet_wp.exe
w3wp.exe
下面是处理该问题的其他堆栈溢出问题:
ny6fqffe2#
在visual studio中,单击“工具|附加到进程。然后选择适当的服务。
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());
vql8enpb4#
您可以在任何值得使用的调试器中实现这一点。Visual Studio有一个应该能满足您的需要。如果你需要更高级的控制,试试OllyDbg,它是一个反汇编器,所以你可以在汇编级操作你的程序,这将给予你完全的控制,但也可能是信息过载。
t3psigkw5#
在Visual Studio 2015中,单击菜单中的“调试〉附加到进程”。或者,也可以使用快捷键Ctrl+Alt+ P。
rvpgvaaj6#
我使用vs 2022,它处于调试状态|附加到进程。(已附加ss)
6条答案
按热度按时间wd2eg0qa1#
您可以使用
Tools | Attach to Process
执行attach to a running process。如果它是Web应用程序,您可以通过连接到aspnet_wp.exe
或w3wp.exe
来连接到它。若要回答有关如何以编程方式附加到进程的问题:
下面是处理该问题的其他堆栈溢出问题:
ny6fqffe2#
在visual studio中,单击“工具|附加到进程。然后选择适当的服务。
pwuypxnk3#
您可以在代码中执行此操作。
用法:
vql8enpb4#
您可以在任何值得使用的调试器中实现这一点。
Visual Studio有一个应该能满足您的需要。
如果你需要更高级的控制,试试OllyDbg,它是一个反汇编器,所以你可以在汇编级操作你的程序,这将给予你完全的控制,但也可能是信息过载。
t3psigkw5#
在Visual Studio 2015中,单击菜单中的“调试〉附加到进程”。或者,也可以使用快捷键Ctrl+Alt+ P。
rvpgvaaj6#
我使用vs 2022,它处于调试状态|附加到进程。(已附加ss)