如何:附加到运行进程

更新:2007 年 11 月

本主题适用于:

版本

Visual Basic

C#

C++

Web Developer

速成版

主题不适用 主题不适用 主题不适用 主题不适用

标准版

主题适用 主题适用

主题适用

主题适用

专业及团队版

主题适用 主题适用

主题适用

主题适用

表格图例:

主题适用

适用

主题不适用

不适用

主题适用,但命令默认情况下隐藏

默认情况下隐藏的一条或多条命令。

可将 Visual Studio 调试器附加到任何正在运行的进程。

附加到正在运行的进程

  1. 在“调试”菜单上选择“附加到进程”。(如果没有打开任何项目,请从“工具”菜单中选择“附加到进程”。)

  2. 在“附加到进程”对话框中的“可用进程”列表中,找到要附加到的程序。

    1. 如果要调试的程序运行在另一台计算器上,必须首先选择该远程计算机。(有关更多信息,请参见如何:选择远程计算机。)

    2. 如果进程在其他用户帐户下运行,请选中“显示所有用户的进程”复选框。

    3. 如果是通过“远程桌面连接”连接,请选中“显示所有会话中的进程”复选框。

  3. 在“附加到”框中,确保待调试的代码类型已经列出。默认的“自动”设置尝试确定要调试的代码类型。如果自动设置不合适:

    1. 单击“选择”。

    2. 在“选择代码类型”对话框中,单击“调试以下代码类型”,然后选择要调试的类型。

    3. 单击“确定”。

  4. 单击“附加”。

    打开“进程”对话框时,会自动显示“可用进程”列表。在该对话框打开时进程可以在后台启动和停止。不过,内容并非总是最新的。通过单击“刷新”,可以随时刷新列表以查看当前进程列表。

    调试时可以附加到多个程序,但在任何时间,调试器中都只有一个程序处于活动状态。可以在“调试位置”工具栏或“进程”窗口中设置活动程序。有关更多信息,请参见如何:设置当前程序

    所有的“调试”菜单执行命令都会影响活动程序。可以在“进程”对话框中中断任何已调试的程序,或者通过“调试”菜单中断所有附加的程序。有关更多信息,请参见如何:中断执行

    说明:

    为了使调试器附加到用 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,请下载并安装用于 Windows 的调试工具(可从 https://www.microsoft.com/whdc/devtools/debugging/default.mspx 获得)。

请参见

任务

如何:附加到托管设备进程

概念

调试器安全

参考

安全警告: 附加到不可信用户拥有的进程可能存在危险。如果以下信息看起来可疑或您不确信其是否可靠,请不要附加到此进程。

其他资源

附加到运行进程