如何:附加到运行进程
本主题适用于:
版本 |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
学习版 |
|||||
专业版、高级专业版和旗舰版 |
可将 Visual Studio 调试器附加到任何正在运行的进程。
附加到正在运行的进程
在**“调试”菜单上选择“附加到进程”。 如果没有打开任何项目,请从“工具”菜单上选择“附加到进程”**。
在**“附加到进程”对话框中的“可用进程”**列表中,找到要附加到的程序。
如果要调试的程序运行在另一台计算器上,必须首先选择该远程计算机。 有关更多信息,请参见如何:选择远程计算机。
如果进程在其他用户帐户下运行,请选中**“显示所有用户的进程”**复选框。
如果是通过**“远程桌面连接”连接,请选中“显示所有会话中的进程”**复选框。
在**“附加到”框中,确保待调试的代码类型已经列出。 默认的“自动”**设置尝试确定要调试的代码类型。 如果自动设置不合适:
单击**“选择”**。
在**“选择代码类型”对话框中,单击“调试以下代码类型”**,然后选择要调试的类型。
单击**“确定”**。
单击**“附加”**。
打开**“进程”对话框时,会自动显示“可用进程”列表。 在该对话框打开时进程可以在后台启动和停止。 不过,内容并非总是最新的。 通过单击“刷新”**,可以随时刷新列表以查看当前进程列表。
调试时可以附加到多个程序,但在任何时间,调试器中都只有一个程序处于活动状态。 可以在**“调试位置”工具栏或“进程”**窗口中设置活动程序。 有关更多信息,请参见如何:设置当前程序。
所有的**“调试”菜单执行命令都会影响活动程序。 可以在“进程”对话框中中断任何已调试的程序,或者通过“调试”**菜单中断所有附加的程序。 有关更多信息,请参见如何:中断执行。
提示
为了使调试器附加到用 Visual C++ 编写的托管代码,该代码需要发出 DebuggableAttribute。 可通过链接 /ASSEMBLYDEBUG 链接器选项将它自动添加到代码中。
如果尝试附加到不受信任的用户帐户拥有的进程,则会出现安全警告对话框确认。 有关更多信息,请参见安全警告: 附加到不可信用户拥有的进程可能存在危险。 如果以下信息看起来可疑或您不确信其是否可靠,则请不要附加到此进程。
在某些情况下,在“远程桌面”(“终端服务”)会话中进行调试时,**“可用进程”列表不会显示所有可用进程。 在 Windows Server 2003 或更高版本中,如果您以具有有限用户帐户的用户身份运行 Visual Studio,“可用进程”**列表将不显示在会话 0 中运行的进程,会话 0 用于服务与其他服务器进程,包括 w3wp.exe。 您可以通过以下方法解决该问题:使用管理员帐户运行 Visual Studio 或从服务器控制台而不是“终端服务”会话运行 Visual Studio。 如果这两种解决方法都不奏效,第三种方法是通过从 Windows 命令行运行 vsjitdebugger.exe -p 进程Id 来附加到进程。 您可以使用 tlist.exe 来确定进程 ID。 若要获取 tlist.exe,请从 https://go.microsoft.com/fwlink/?LinkId=168279 下载并安装 Windows 调试工具。
请参见
参考
安全警告: 附加到不可信用户拥有的进程可能存在危险。 如果以下信息看起来可疑或您不确信其是否可靠,则请不要附加到此进程