将官网的技术文档摘了下来
链接 https://docs.microsoft.com/zh-cn/visualstudio/debugger/debugger-feature-tour
Visual Studio 调试器的功能教程
本主题介绍 Visual Studio 调试器的功能。 如果你想要遵循通过在 Visual Studio 中打开你自己的应用,你可以这样做,或者你可以遵循示例应用程序使用初学者指南。
此处描述的功能都适用于 C#、 c + +、 Visual Basic、 JavaScript 和其他语言支持的 Visual Studio (除指明外)。
设置断点并启动调试器
若要调试,需要使用调试程序附加到应用程序进程中启动您的应用程序。 F5 (调试 > 启动调试) 是执行该操作的最常见方法。 但是,现在你可能未设置任何断点,以检查你的应用程序代码,因此我们将执行此操作,它首先,然后开始调试。
如果你已在代码编辑器中打开文件,你可以通过在某个代码行的左边距中单击设置断点。
按 F5 (调试 > 启动调试) 和调试器会运行到它所遇到的第一个断点。 如果应用程序尚未运行,F5 启动调试器,并在第一个断点处停止。
当你知道代码的行或你想要检查详细信息中的部分时,断点是代码的一个有用的功能。
导航代码在调试器中使用步骤命令
因为它们使你的应用程序代码的导航速度更快,我们会为大多数命令提供的键盘快捷方式。(如菜单命令显示在括号中命令的等效项。)
若要启动附有调试器的应用程序,请按 F11 (调试 > 单步执行)。 F11 是单步执行命令,并向前移动一次的应用程序执行一个语句。 当你开始与 F11 的应用程序时,调试器将在获取执行的第一个语句处中断。
黄色箭头表示在其暂停调试器,它还将在同一时刻 (此语句具有尚未执行) 暂停应用程序执行的语句。
F11 是要检查的大多数详细信息中的执行流的好方法。 (若要通过代码更快地移动,我们展示其他一些选项。)默认情况下,调试器跳过非用户代码 (如果你希望更多详细信息,请参阅仅我的代码)。
Note
在托管代码中,你将看到一个询问你是否想要自动逐过程执行属性和运算符 (默认行为) 时通知对话框。 如果你想要更改设置更高版本,禁用逐过程执行属性和运算符中设置工具 > 选项下的菜单调试。
单步执行代码,以跳过函数
当所使用的是一个函数或方法调用的代码行时,你可以按 F10 (调试 > 逐过程) 而不是 F11。
F10 使调试器,而无需单步执行函数或应用程序代码 (仍执行的代码) 中的方法。 按 F10,你可以跳过你不感兴趣的代码。 这样一来,你可以快速访问你更感兴趣的代码。
单步执行属性
如前所述,默认情况下,调试器跳过托管的属性和字段,但单步执行特定命令允许你重写此行为。
右键单击某个属性或字段,然后选择单步执行特定,然后选择可用的选项之一。
在此示例中,单步执行特定我们到达的代码Path.set
。
运行到在你代码中快速使用鼠标的点
在调试器中,将鼠标悬停在一行代码之前运行到单击(运行执行到此处) 按钮显示在左侧。
Note
运行到单击是中新增功能 (运行执行到此处) 按钮Visual Studio 2017。
单击运行到单击(运行执行到此处) 按钮。 调试器将进入第的代码行您单击的位置。
使用此按钮是类似于设置临时断点。 此命令也是便于快速绕过应用程序代码的可见区域内。你可以使用运行到单击中任何打开的文件。
向前移动跳出当前函数调试器
有时,你可能想要继续调试会话但前移一直到当前函数调试器。
按下 Shift + F11 (或调试 > 跳出)。
此命令恢复应用程序执行 (和使调试器) 直到当前函数返回。
运行到光标处
停止了调试器,通过按停止调试的红色按钮或 Shift + F5。
右键单击你的应用程序中的代码行,然后选择运行到光标处。 此命令将开始调试,并在当前代码行上设置一个临时断点。
如果设置断点时,调试器将暂停上抵达第一个断点。
按 F5,直到到达的代码行到选择的其中运行到光标处。
当你编辑代码,并想要快速设置临时断点,然后启动调试器时,此命令非常有用。
Note
你可以使用运行到光标处中调用堆栈窗口进行调试时。
快速重新启动您的应用程序
单击重新启动中调试工具栏按钮 (Ctrl + Shift + F5)。
当你按重新启动,从而节省了时间而不是停止应用并重新启动调试器。 在第一个命中通过执行代码的断点处暂停调试器。
如果您想要停止了调试器,并返回到代码编辑器中,你可以按红色停止按钮而不是重新启动。
检查与数据提示的变量
现在,你有点知道你采用相反的方法,你可以开始检查使用调试程序时你应用程序的状态 (变量) 的最佳时机。 允许你检查变量的功能是一些最有用的功能的调试器,并通过不同的方式来完成此操作。 通常情况下,当你尝试调试问题,您试图从中找出变量是否存储您希望他们能够在特定应用程序的状态中的值。
在暂停时在调试器中,将鼠标悬停在用鼠标的对象,并查看其默认属性值 (在此示例中,文件名market 031.jpg
是默认属性值)。
展开要查看其属性的对象 (如FullPath
在此示例中的属性)。
通常情况下,在调试时,你需要一种快速的方式来检查对象的属性值和数据提示是一种好方法,以执行此操作。
Tip
在最受支持的语言中,你可以编辑在调试会话过程的代码。 有关详细信息,请参阅编辑并继续。
检查与自动和局部变量窗口的变量
调试时,查看自动底部的代码编辑器窗口。
在自动窗口中,你将看到沿其当前值和它们的类型的变量。 自动窗口将显示在当前行或前面的行上使用的所有变量 (在 c + + 中,窗口将都显示变量中的代码的前面三行。 查看文档,了解特定于语言的行为)。
Note
在 JavaScript 中,局部变量但不是支持窗口自动窗口。
接下来,查看局部变量窗口。 局部变量窗口显示当前位于范围内的变量。
在此示例中,this
对象和对象f
作用域中。 有关详细信息,请参阅自动和局部变量窗口中检查变量。
设置监视
你可以使用监视窗口上指定一个变量 (或表达式),你想要跟踪。
调试时,右键单击某个对象,然后选择添加监视。
在此示例中,必须在上设置监视File
对象,也可以查看当你移动通过调试器时更改其值。与其他变量窗口中,不同监视windows 始终显示的变量正在监视 (它们灰显时超出范围)。
有关详细信息,请参阅设置使用监视和快速监视窗口监视
检查调用堆栈
单击调用堆栈这是默认情况下在较低的右窗格中打开的窗口在调试过程。
调用堆栈窗口将显示在其中调用方法和函数获取的顺序。 顶部行显示当前函数 (Update
在此示例中的方法)。 第二行显示Update
从进行了调用Path.set
属性,依次类推。 调用堆栈是一种好方法,以检查并了解应用程序的执行流。
Note
调用堆栈在 Eclipse 如某些 Ide 窗口是类似于调试透视。
你可以双击要打算看看该源代码的代码行,并还更改正在检查由调试器当前作用域。 这不提升调试器。
你还可以使用从右击菜单调用堆栈窗口来执行其他操作。 例如,可以插入到特定函数的断点,重新启动你的应用使用运行到光标处,并转检查源代码。 请参阅如何: 检查调用堆栈。
检查异常
当你的应用程序引发了异常时,则调试器将会引发异常的代码的行。
在此示例中,异常帮助器演示System.Argument
异常和错误消息,指出该路径不是合法的窗体。 因此,我们知道该错误出现在方法或函数的自变量。
在此示例中,DirectoryInfo
调用上中存储的空字符串提供错误value
变量。
异常帮助程序是一项强大功能,可帮助你调试错误。 你可以执行诸如查看错误详细信息,并从异常帮助器添加监视。 或者,如果需要你可以更改引发特定异常的条件。
Note
异常帮助器替换异常助手中Visual Studio 2017。
展开异常设置节点以查看更多选项如何处理这种异常类型,但你无需更改为本教程的任何内容 !
调试在 Azure App Service 中的实时 ASP.NET 应用程序
快照调试器你感兴趣的代码在执行时,获取你在生产应用的快照。 要指示调试程序拍摄快照,可在代码中设置 snappoints 和 logpoints。 使用调试程序,可精确查看出错的内容,而不影响生产应用程序的流量。 快照调试程序有助于大幅减少用于解决生产环境中发生的问题的时间。
快照集合是可用于在 Azure App Service 中运行的 ASP.NET 应用程序。 必须在.NET Framework 4.6.1 上运行 ASP.NET 应用程序或更高版本,并且必须在.NET 核心 2.0 或更高版本在 Windows 上运行 ASP.NET Core 应用程序。
有关详细信息,请参阅调试实时 ASP.NET 应用程序使用快照调试器。
IntelliTrace 步骤回 (Visual Studio Enterprise) 的视图快照
IntelliTrace 步骤回步骤事件也会自动编制的应用程序的每个断点和调试器的快照。 凭借记录的快照便可以返回到上一个断点或步骤,并查看当时应用程序的状态。 如果希望查看以前的应用程序状态,但不想重新启动调试或重新创建所需应用状态,使用 IntelliTrace 后退可以节省时间。
可以通过使用调试工具栏中的“后退”和前进”按钮浏览和查看快照。 这些按钮用于浏览“诊断工具”窗口中“事件”选项卡上显示的事件。