当前位置: 首页 > news >正文

Visual Studio中的常用调试功能(二)

Visual Studio中的常用调试功能(一)

8、Visual Studio调试工具栏中的按钮及图标

image

 

9、逐语句执行(F11)

逐语句(Step Into)执行也称为单步执行,即一行一行地执行程序中的代码。

如果某行代码中调用了一个函数,那么逐语句执行命令就会进入函数中去,而不是跳过函数。

这是在Visual Studio中调试最常用的功能.

 

demo

 

 

10、逐过程执行(F10)

逐过程(Step Over)执行与逐语句执行有一些相似之处。

如果代码行中没有函数调用,那么执行结果是相同的,都是执行完当前代码行,在下一行代码处暂停。

如果当前代码行中有函数调用,逐过程就会跳过函数,不会进入函数内部。

demo

 

11、跳出执行(Shift+F11)

跳出执行(Step Out)是指跳出当前执行的函数。该功能只有在程序暂停的状态下才可以使用,即正在逐语句或者逐过程执行代码时,跳出执行才有效。

demo

 

12、运行到光标处(Ctrl+F10)

该命令未在工具栏中体现,只能通过快捷键执行。

“运行到光标处”相当于先在光标处设置一个断点,并执行到此处进行暂停。

不过这只是一个虚拟的断点,不会出现在“断点”窗口中,而且只会作用一次,即执行过后就不再起作用。

demo

 可以看到我将光标定位在ReadCommonDicomTag函数处,然后按下Ctrl+F10,代码就执行到了这里并暂停。

 

12、禁用断点

在第一篇文章中,我们介绍了如何创建断点。当我们创建断点后,有时候想暂时跳过某些断点,可以通过禁用断点来实现。

我们在断点占单击右键,可以通过菜单禁用断点。也可以通过快捷键Ctrl+F9来实现同样的效果。

image

 

 

 

13、查看所有断点

当我们设置多个断点后,可以通过调试-》断点菜单,查看所有断点

image

 

image

 

在这里我们可以查看所有断点,并禁用/启用断点。

 

 

14、多次执行同一代码(限C++ Native)

多次执行代码指的是在调试状态下,多次执行某些代码。

image

 

在调试过程中,我们可以看到行首有一个箭头表示当前要执行的代码位置,它相当于代码执行的指针,这个指针指向哪里,代码就执行到哪里。

可以将该指针移动到期望想要再次执行的地方,代码会执行到指针指向的行,并暂停。

demo

 

移动执行指针时需要遵循两个基本原则:一是不要移动到函数外;二是不要跳过重要的初始化操作语句。

移动执行指针可能会导致预料不到的结果,这个需要根据代码情况自行分析。

 

15、查看局部变量

局部变量(Locals)窗口能够查看的变量是当前执行函数的作用域范围内的所有局部变量。

“局部变量”窗口可以通过“调试”→“窗口”菜单下的“局部变量”命令来打开,也可以使用Alt + 4组合键打开。

注意,作用域是函数,包括函数的参数,以及函数级别的所有变量。如果变量是全局的,就不会在“局部变量”窗口中自动显示。

demo

 

 在局部变量窗口中,我们可以双击值,进行修改

image

 

16、查看当前栈中的变量

自动(Autos)窗口只能显示当前栈中的一些变量。“自动”窗口可以通过“调试”→“窗口”菜单下的“自动窗口”命令来打开。

“自动”窗口就是自动显示当前调试上下文的变量。比如在刚进入一个函数时,“自动”窗口会显示这个函数的参数值以及全局变量,然后显示这个函数第一行代码所定义的变量,但是不会显示其他变量。

demo

 

17、即时窗口

在即时(Immediate)窗口中,可以执行调试、计算表达式、执行语句、输出变量的值等操作。

“即时”窗口在调试状态下才可以使用,可通过“调试”→“窗口”菜单下的“即时”命令打开。

这个窗口可以理解为命令行的”快速监视“功能

demo

 

http://www.sczhlp.com/news/255.html

相关文章:

  • 易基因突破创新 自主研发DNA甲基化年龄预测算法及系统获发明专利授权
  • 从独立工具到协作中枢:Bug管理系统的进化革命
  • Redis的引入与配置
  • 给删除增加删除感
  • 卷积神经网络的验证码识别系统设计
  • scrollTop
  • 阿里云OSS 的Content-Disposition不生效 导致浏览器强制下载而不是预览行为
  • 测试
  • AI测试开发私教服务全新升级
  • 10分钟无痛部署!字节Coze开源版喂饭教程
  • 28 位运算
  • Prime Video如何将时间序列异常转化为可操作警报
  • 抗原设计与合成服务|定制抗原技术|高效多肽合成
  • 中日甲午海战军舰情况
  • 面试算法练习-更新ing
  • 2025年优选代码托管平台指南
  • 重塑应用搜索体验,系统级入口功能一步直达
  • MATLAB实现不同型号飞机的红外图像识别
  • 我的手机微信开启了一个端口,虽然我不知道是做什么的
  • 构建之法读后感
  • UI总改版?这个自我修复的AI测试神器让团队告别深夜紧急回滚
  • 低分辨率显示器下的样式兼容
  • javascript的BOM对象的详细解析
  • 企业级知识管理系统的进化:从工具选择到效能提升
  • C/C++通过SQLiteSDK增删改查
  • 深入理解 LangGraph:构建复杂智能体的状态管理与执行流
  • ./build.sh:行1: g++: 未找到命令的错误问题在centos操作系统下面如何解决
  • java 连接 达梦数据库时报错 无法加载达梦数据库驱动: dm.jdbc.driver.DmDriver
  • 通过POSTMAN上传文件(入参IFromFile)
  • C++掌握函数重载、引用与内联函数的概念