ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Visual Studio附加到运行进程

2020-03-10 13:55:23  阅读:315  来源: 互联网

标签:单击 代码 附加 Visual Studio 进程 调试 调试器


Visual Studio 调试器可以附加到在 Visual Studio 外运行的进程。 可以使用此附加功能执行以下操作:

  • 调试并非在 Visual Studio 中创建的应用程序。

  • 同时调试多个进程。 也可以通过在单个解决方案内启动多个项目来调试多个进程。

  • 调试正在远程计算机上运行的进程。

  • 调试一个 DLL,该 DLL 运行在不易从 Visual Studio 启动的独立进程上。例如,与 Internet 信息服务一起运行的服务或 ISAPI DLL。

  • 当一个进程在 Visual Studio 外运行时发生崩溃时,将自动启动调试器。 这就是实时调试。

一旦附加到某个程序,就可以使用调试器执行命令、检查程序状态,等等。 有关更多信息,请参见 Execution 控件 和 查看调试器中的数据。 当然,检查程序的能力可能会受到某些限制,这取决于程序是否用调试信息生成,是否可以访问程序源代码,以及公共语言运行时 JIT 编译器是否在跟踪调试信息。

如何:附加到运行进程

  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,请从 http://go.microsoft.com/fwlink/?LinkId=168279 下载并安装 Windows 调试工具。

如何:附加到脚本

1、首先是弹出附加进程框

2、单击要附加到的进程

3、在“附加到”框中,您应该会看到“脚本代码”或“自动: 脚本代码”。 如果显示其他内容,请按照下列步骤操作:

  1. 单击“选择”。

  2. 在“选择代码类型”对话框中单击“调试以下代码类型”,再选择“脚本”。

  3. 单击“确定”。

4、单击“附加”。

如何:设置当前进程

调试时可以附加到多个进程,但在任何给定时间,调试器中只有一个进程处于活动状态。 可以在“调试位置”工具栏中设置活动进程。

  1. 在“调试”菜单上,单击“窗口”,再选择“进程”。

    “进程”窗口可能已经显示出来。

  2. 在“进程”窗口中,双击要作为活动进程的进程。

    - 或 -

    在“调试位置”工具栏上,选择“进程”列表框,然后选择要作为当前进程的进程。

如何:分离进程

“分离”可使调试器断开与程序的连接,该程序已附加到调试器或已从调试器启动。

同时与所有程序分离

在“调试”菜单上,单击“全部分离”。

如果分离所有进程,调试器会话将自动结束。

分离单个进程

如何:处理附加错误

当 Visual Studio 调试器附加到一个正在运行的进程时,该进程可能包含一种或多种类型的代码。 调试器能够附加到的代码类型包括本机、托管、SQL 和脚本。 在**“附加到进程”**对话框中显示并选择这些代码类型。

有时,调试器能够成功附加到一种代码类型,但不能附加到另一种代码类型。 这种情况可能发生在您尝试附加到远程计算机上运行的进程时, 原因是远程计算机上可能安装了一些代码类型的远程调试组件,但没有安装另一些代码类型的远程调试组件。 这种情况还可能发生在您尝试为直接数据库调试附加到两个或多个进程时。 SQL 调试仅支持附加到单个进程。

如果调试器能够附加到某些代码类型而不是所有代码类型,您将看到一条消息,指示无法附加的类型。

如果调试器成功地附加到至少一种代码类型,您就可以继续调试进程。 您只能调试那些已被成功附加的代码类型。 上面的示例消息说明未能附加脚本代码类型。 因此,您将不能调试进程内的脚本代码。 进程内的脚本代码将继续运行,但无法设置断点、查看数据或在脚本中执行其他调试操作。

如果想了解有关调试器未能附加到某种代码类型的详细原因,可以尝试仅重新附加到该代码类型。

获得有关某种代码类型未能附加的详细原因

  1. 从进程中分离。 为此,请在“调试”菜单上,单击“全部分离”。

  2. 仅选择一种程序类型,再次附加到进程。

    1. 在“附加到进程”对话框的“可用进程”列表中选择进程。

    2. 单击“选择”。

    3. 在“选择代码类型”对话框中,选择“调试以下代码类型”和未能附加的代码类型。 清除任何其他代码。

    4. 单击“确定”。 “选择代码类型”对话框关闭。

    5. 在“附加到进程”对话框中,单击“附加”。

    此时,附加将彻底失败,并且您将收到一条特定的错误消息。

标签:单击,代码,附加,Visual,Studio,进程,调试,调试器
来源: https://www.cnblogs.com/yilang/p/12449525.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有