首页 > 其他分享 >VS调试技巧

VS调试技巧

时间:2024-08-06 23:53:52浏览次数:8  
标签:技巧 错误 快捷键 编译 VS 内存 断点 调试

目录

1.什么是debug

2.Debug和Release

3.VS调试快捷键

4.监视和内存观察

4.1监视

4.2内存

5.编译常见错误归类

5.1编译型错误

5.2链接型错误

5.3运⾏时错误


1.什么是debug

当我们发现程序中存在的问题的时候,那下⼀步就是找到问题,并修复问题。 这个找问题的过程叫称为调试,英⽂叫debug(消灭bug)的意思。

调试⼀个程序,⾸先是承认出现了问题,然后通过各种⼿段去定位问题的位置,可能是逐过程的调 试,也可能是隔离和屏蔽代码的⽅式,找到问题所的位置,然后确定错误产⽣的原因,再修复代码, 重新测试。

2.Debug和Release

Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序;程序员在写代码的时候,需要经常性的调试代码,就将这⾥设置为 debug ,这样编译产⽣的是debug 版本的可执⾏程序,其中包含调试信息,是可以直接调试的。

Release称为发布版本,它往往是进⾏了各种优化,使得程序在代码⼤⼩和运⾏速度上都是最优的, 以便⽤⼾很好地使⽤。当程序员写完代码,测试再对程序进⾏测试,直到程序的质量符合交付给⽤⼾ 使⽤的标准,这个时候就会设置为 release ,编译产⽣的就是 release 版本的可执⾏程序,这个 版本是⽤⼾使⽤的,⽆需包含调试信息等。

对⽐可以看到从同⼀段代码,编译⽣成的可执⾏⽂件的⼤⼩,release版本明显要⼩,⽽debug版本明 显⼤。

3.VS调试快捷键

调试最常使⽤的⼏个快捷键:

F9:创建断点和取消断点,断点的作⽤是可以在程序的任意位置设置断点,打上断点就可以使得程序执⾏到想要的位置暂定执 ⾏,接下来我们就可以使⽤F10,F11这些快捷键,观察代码的执⾏细节。

条件断点:满⾜这个条件,才触发断点

F5:启动调试,经常⽤来直接跳到下⼀个断点处,⼀般是和F9配合使⽤。

F10:逐过程,通常⽤来处理⼀个过程,⼀个过程可以是⼀次函数调⽤,或者是⼀条语句。

F11:逐语句,就是每次都执⾏⼀条语句,但是这个快捷键可以使我们的执⾏逻辑进⼊函数内部。在函 数调⽤的地⽅,想进⼊函数观察细节,必须使⽤F11,如果使⽤F10,直接完成函数调⽤。

 CTRL+F5:开始执⾏不调试,如果你想让程序直接运⾏起来⽽不调试就可以直接使⽤。

4.监视和内存观察

#include <stdio.h>

int main()
{
 int arr[10] = { 0 };
 int num = 100;
 char c = 'w';
 int i = 0;
 for (i = 0; i < 10; i++)
 {
 arr[i] = i;
 }
 return 0;
}

4.1监视

开始调试后,在菜单栏中【调试】->【窗⼝】->【监视】,打开任意⼀个监视窗⼝,输⼊想要观察的对 象就⾏。 打开监视窗⼝:

4.2内存

如果监视窗⼝看的不够仔细,也是可以观察变量在内存中的存储情况,还是在【调试】->【窗⼝】-> 【内存】 打开内存窗⼝:

在打开内存窗⼝后,要在地址栏输⼊:arr,&num,&c,这类地址,就能观察到该地址处的数据。

注:调试一定要结合3.的快捷键来使用 

5.编译常见错误归类

5.1编译型错误

编译型错误⼀般都是语法错误,这类错误⼀般看错误信息就能找到⼀些蛛丝⻢迹的,双击错误信息也能初步的跳转到代码错误的地⽅或者附近。编译错误,随着语⾔的熟练掌握,会越来越少,也容易解决。

5.2链接型错误

看错误提⽰信息,主要在代码中找到错误信息中的标识符,然后定位问题所在。⼀般是因为

• 标识符名不存在

• 拼写错误

• 头⽂件没包含

• 引⽤的库不存在

5.3运⾏时错误

运⾏时错误,是千变万化的,需要借助调试,逐步定位问题,调试解决的是运⾏时问题。

总之就是一句:多写多练

标签:技巧,错误,快捷键,编译,VS,内存,断点,调试
From: https://blog.csdn.net/2301_80065652/article/details/140917699

相关文章

  • Python vs. R:揭秘机器学习领域的双璧
    一、引言1.1背景介绍随着大数据和人工智能技术的飞速发展,机器学习已经成为了一个热门领域。在机器学习领域,Python和R是两种广泛使用的编程语言。Python因其简洁易读的语法和强大的库支持,成为了最受欢迎的编程语言之一。而R则以其强大的统计分析和数据可视化能力,在统计学......
  • SciTech-Mathematics-Probability+Statistics-Causation vs. Correlation: From Corre
    https://www.statology.org/from-correlation-to-causation-deep-dive-into-data-interpretation/FromCorrelationtoCausation:DeepDiveintoDataInterpretationCorrelationandCausationarekeyconceptsindataanalysis.However,correlationdoesn'tme......
  • 超快速的百度网盘不限速下载技巧,建议偷偷使用!
    小伙伴们,你们是否曾经为百度迅雷网盘限速而烦恼呢?动不动就要冲svip会员,不仅费钱,开通后还慢的气死,我现在来介绍一种全新的高效下载方法吧,只需要下载并安装一款神奇的软件,接着简单操作即可轻松实现快速下载,节省时间,这款神奇的软件具体信息在文章最后有说明。第一:你只需要将要下载的......
  • 在VSCode中使用PCL
    我要被气死了。前提条件:CMakeMSVC2022(务必装这个)VSCode以及相关的C++,CMake插件等安装步骤:去PCL的Release这里下载类似“PCL-1.14.1-AllInOne-msvc2022-win64.exe”名称的exe,安装过程中要求为所有用户写入环境变量。找个地方新建空文件夹,新建这些文件,注意文件名也要一......
  • 02 部署LVS-DR群集
    2.1:直接路由模式(LVS-DR)实验环境关闭所有测试环境的防火墙[root@bogon~]#systemctlstopfirewalld[root@bogon~]#setenforce01.配置LVS调速器(1)配置虚拟IP地址VIP[root@lvs~]#cd/etc/sysconfig/network-scripts/[root@lvsnetwork-scripts]#cpifcfg-ens33if......
  • Springboot计算机毕业设计电脑商城购物系统(数据库、调试部署、开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,商品分类,商品品牌,商品信息开题报告内容1.选题背景及意义1.1选题背景随着计算机和网络的普及,电子商务已经成为现代社会不可或缺的一部分。特别是在21......
  • Springboot计算机毕业设计党支部信息管理系统的设计与实现(数据库、调试部署、开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表党员,党支部公告,党支部新闻,月缴费情况,年缴费情况,活动信息,支部信息,群众,入党申请,财务,负责人开题报告内容一、研究背景与意义研究背景随着信息技术的迅......
  • Springboot计算机毕业设计第二学位学生管理系统(数据库、调试部署、开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表学生,教师,班级信息,课程类别,课程信息,课程选择,在线咨询,成绩分类,课程成绩,学生学籍,课程退出,院系,专业,年级开题报告内容一、研究背景与意义研究背景随着......
  • SSM高校学生学业预警系统5253u 本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:课程,班级,教师,学生,课程信息,选课信息,考勤信息,成绩信息,学籍信息,预警信息开题报告内容一、选题背景随着高等教育规模的不断扩大和教育质量的提升......
  • LVS-TUN隧道模式
    当然可以。以下是按照您的要求整理的表格形式的实验手册:主机名称网卡信息安装应用系统Client客户端192.168.2.101无RHEL8/CentOS8Lvs服务器(DR)DIP:192.168.2.110VIP:192.168.40.111ipvsadmRHEL8/CentOS8RS1RIP:192.168.2.111httpdRHEL8/CentOS8RS2R......