学习使用Visual Studio调试Visual Basic代码(下)
Visual Studio 是功能完备的 IDE,可用于编码、调试、测试和部署到任何平台,Visual Studio使用 .NET 开发 iOS、Android 和 Web 应用和游戏。
本文分步介绍了Visual Studio调试器的功能。在调试应用程序时,通常意味着您正在连接调试器来运行应用程序。当您执行此操作时,调试器提供了许多方法来查看代码在运行时的工作方式。您可以单步执行代码并查看存储在变量中的值,可以在变量上设置监视以查看值何时更改,可以检查代码的执行路径,查看代码的分支是否正在运行等等。(点击此处可查看上篇)
尽管演示应用程序是Visual Basic,但是大多数功能都适用于C#,C ++,F#,Python,JavaScript和Visual Studio支持的其他语言(F#不支持编辑并继续。F#和JavaScript不支持自动窗口)。屏幕截图在Visual Basic中。
在本教程中,您将了解:
- 启动调试器并命中断点。
- 学习命令以在调试器中单步执行代码
- 在数据提示和调试器窗口中检查变量
- 检查调用堆栈
- 按F5再次前进到断点。
- 在代码编辑器中,向下滚动并悬停在SendMessage方法中的Console.WriteLine方法上,直到绿色的“运行为单击”按钮“运行为单击”出现在左侧。该按钮的工具提示显示“在此处运行执行”。
注意:“运行以单击”按钮是Visual Studio 2017中的新增功能(如果看不到绿色箭头按钮,请在本示例中使用F11代替,将调试器前进到正确的位置。)
- 单击运行以单击按钮运行以单击。 调试器前进到Console.WriteLine方法。 使用此按钮类似于设置临时断点。“运行单击”非常方便,可以在应用程序代码的可见区域内快速移动(您可以单击任何打开的文件)。
快速重启您的应用
单击调试工具栏中的重新启动重新启动应用程序按钮(Ctrl + Shift + F5)。
当您按重新启动时,与停止应用程序和重新启动调试器相比,它节省了时间。 调试器在执行代码遇到的第一个断点处暂停。
调试器再次在您之前在For循环内设置的断点处停止。
使用数据提示检查变量
允许您检查变量的功能是调试器最有用的功能之一,并且有多种方法可以执行此操作。通常,当您尝试调试问题时,您试图找出变量是否存储了您希望它们在特定时间具有的值。
- 在name += letters[i] 语句上暂停时,将鼠标悬停在letters变量上,您会看到它的默认值,即数组“f” c中第一个元素的值。
- 接下来,将鼠标悬停在name变量上,您会看到它的当前值,一个空字符串。
- 多次按F5(或“调试”>“继续”)以遍历For循环几次,再次在断点处暂停,然后每次将名称变量悬停以检查其值。
变量的值随For循环的每次迭代而变化,显示f的值,然后显示fr,然后显示fre,依此类推。
通常,在调试时,您需要一种快速的方法来检查变量的属性值,以查看它们是否存储了您希望它们存储的值,而数据提示是一种很好的方法。
使用“自动”和“本地”窗口检查变量
- 查看代码编辑器底部的“自动”窗口。
如果已关闭,请在调试器中暂停时打开它,方法是选择“调试”>“ Windows”>“自动”。
在“自动”窗口中,您会看到变量及其当前值。 “自动”窗口显示当前行或上一行使用的所有变量(有关语言特定行为,请参见文档)。
- 接下来,在“自动”窗口旁边的标签中,查看“本地”窗口。
- 展开字母变量以显示其包含的元素。
Locals窗口向您显示当前作用域(即当前执行上下文)中的变量。
设置手表
在主代码编辑器窗口中,右键单击名称变量,然后选择“添加监视”。
“监视”窗口在代码编辑器的底部打开。 您可以使用“监视”窗口来指定要关注的变量(或表达式)。
现在,您在name变量上设置了一个监视,当您在调试器中移动时,可以看到其值更改。与其他变量窗口不同,“监视”窗口始终显示您正在监视的变量(超出范围时它们将显示为灰色)。
检查调用堆栈
- 在For循环中暂停时,单击Call Stack窗口,默认情况下在右下方窗格中打开该窗口。
- 如果已关闭,请在调试器中暂停时打开它,方法是选择“调试”>“ Windows”>“调用堆栈”。
- 单击F11几次,直到您看到调试器在SendMessage方法中暂停。 查看“调用堆栈”窗口。
“调用堆栈”窗口显示了调用方法和函数的顺序。第一行显示当前功能(此应用程序中的SendMessage方法)。第二行显示从Main方法调用了SendMessage,依此类推。
注意:在某些IDE(例如Eclipse)中,“调用堆栈”窗口类似于“调试”透视图。
调用堆栈是检查和了解应用程序执行流程的好方法。
您可以双击一行代码来查看该源代码,这还会更改调试器正在检查的当前范围。 此操作不会使调试器前进。
您还可以使用“调用堆栈”窗口中的右键单击菜单来执行其他操作。 例如,您可以将断点插入到指定的函数中,使用“运行到光标”前进调试器,然后检查源代码。
更改执行流程
- 按两次F11键运行Console.WriteLine方法。
- 在调试器在SendMessage方法调用中暂停的情况下,使用鼠标抓住左侧的黄色箭头(执行指针),然后将黄色箭头向上移动一行,回到Console.WriteLine。
- 按F11。 调试器重新运行Console.WriteLine方法(您在控制台窗口输出中看到此方法)。
通过更改执行流程,您可以执行诸如测试不同代码执行路径或重新运行代码的操作,而无需重新启动调试器。
注意:通常,您需要谨慎使用此功能,并且在工具提示中会看到警告。您可能还会看到其他警告。移动指针不能将您的应用程序还原到较早的应用程序状态。
- 按F5键继续运行该应用程序。
恭喜您完成本教程(点击此处可查看上篇)!后期会持续更新本系列教程,敬请期待!
喜欢该产品的朋友可以点击下载Visual Studio试用版免费体验~
想要购买Visual Studio正版授权,或了解更多产品信息请点击