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

【Visual Studio】使用VS调试(Debug)

确保在Debug模式下而不是Release

断点(break point)

直接在有代码的行前单击,会出现红色的点(再次单击会取消);或者光标停留在某行,按F9

这意味着程序当执行到这一行时会终止

在打完断点后点击”本地Windows调试器“或者按F5

往下翻会有代码供测试

界面如下:

Debug01

在工具栏有这样三个操作

Debug02

  • 逐语句(step into):步入进函数,看看这个函数做了什么——F11
  • 逐过程(step over):从当前函数跳到下一行代码——F10
  • 跳出(step out):跳出当前函数,回到调用这个函数的位置——Shift+F11

测试代码

#include<iostream>
using namespace std;
int main() {int a = 8;a++;const char* string = "Hello";for (int i = 0; i < 5; i++) {const char c = string[i];cout << c << endl;}cout << "Hello World" << endl;
}

首先我们来看a的值,显示10016,你可能会疑惑:为什么是10016?为什么不是10086? 为什么不是8?

这是因为虽然箭头此时指向这条语句,但并不意味着已经运行了这行代码;而是我们正要运行它

所以调试器显示的是:a将要被设置的内存位置的数字

我们没有把这个变量设置成任何东西,它只是未初始化的内存

看到这里你就明白了为什么你的a的值既不是8也不是10016

内存视图(memory view)

  • 调试->窗口->内存->内存1
  • Debug->windows->memory->memory1

输入&a 就被带到变量a的内存地址

按F10后我们可以观察到a的值变为了8(局部变量/自动窗口)

四个字节的内存也被设置为8(内存1): 08 00 00 00

再按F10,a变为了9

再按F10,string也发生了变化。前面的是它的地址,

将其复制到内存1中查找:48 65 6c 6c 6f ;这是ASCII码,翻译过来就是Hello

如果你不想一个个按F10,而是让程序接着运行到某一句,就在那一句前打断点,按F5或continue

另外,你还可以右键->转到反汇编,来查看CPU指令

以上就是全部内容,希望你能很好的应用Debug

视频:https://www.youtube.com/watch?v=0ebzPwixrJA


http://www.mrgr.cn/news/75380.html

相关文章:

  • My_SQL day3
  • 解锁微前端的优秀库
  • 搜维尔科技:Manus VR数据手套集成,遥操作五指灵巧手解决方案
  • 【数据库】深入解析慢 SQL 的识别与优化策略
  • 5G 现网信令参数学习(3) - RrcSetup(1)
  • 显示微服务间feign调用的日志
  • APEX高性能减速机MG/MGH系列 高负载应用下的精准动力传输
  • 2024年11月14日
  • 如何有效的解决LabVIEW项目中的问题?
  • win11修改鼠标右键界面
  • 计算机组成原理之总线和输入/输出系统
  • 【Kafka】集成案例:与Spark大数据组件的协同应用
  • Springboot采用jasypt加密配置
  • 表达式求值问题(中缀转后缀,对后缀求值)详解
  • Java篇方法的使用
  • 工控HMI应用场景(1):医疗终端机的界面
  • 全志科技嵌入式面试题及参考答案
  • 手动搭建 Node.js 环境
  • 【论文阅读】Prompt-to-Prompt Image Editing with Cross Attention Control
  • <项目代码>YOLOv8 瞳孔识别<目标检测>
  • Python中的“==”和“is”究竟有何不同?一篇文章让你彻底搞懂!
  • Java 网络编程:Socket 与网络通信
  • 2.6 以太网扩展技术
  • 《向量数据库指南》——Mlivus Cloud:数据安全与合规性的守护者
  • 【月之暗面kimi-注册/登录安全分析报告】
  • Visual Studio 如何在终端窗口内嵌git bash