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

【计算机基础】VS断点调试,边学边思考

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处

文章目录

  • 1、什么是断点?与调试有何关系?
  • 2、断点应该打在哪里?
  • 3、逐语句、逐过程以及跳出的区别
  • 4、degug和release模式下的调试有什么区别?
  • 5、无断点,调试和执行有无区别?


1、什么是断点?与调试有何关系?

🔎断点:断点是一种在代码中设置的标记,用于调试程序。当程序执行到设置的断点处时,程序会暂停执行,这时我们就可以查看程序状态、变量值等信息,以便定位并解决问题。

🔎调试:调试是指通过检查、测试和分析程序来找出并解决程序中的错误或异常行为的过程。

设置断点是调试的一种常用方法,它可以让开发者在特定位置暂停程序执行,以便检查代码的运行情况。当程序执行到断点时,开发者可以观察变量的值、执行路径以及程序流程,帮助排查程序中的bug或异常情况。

2、断点应该打在哪里?

🔎 我们注意到一旦点击开始调试后,程序运行至第一个断点处停下,意味着这个断点之前的语句都已经执行了。

🔎因此,我们打断点的时候应该放在那些不清楚如何执行或是有可能存在bug的地方。断点的设置位置可以根据具体的调试需求来确定。一般来说,断点的设置应该在你希望程序暂停执行以便进行调试、观察或分析的地方。

3、逐语句、逐过程以及跳出的区别

打完断点后我们需要对代码进行调试,其中就有三种调试手段,分别是逐语句、逐过程以及跳出。那么他们之间有什么区别呢?下面以VS2019为例进行说明:

1、逐语句就是断点处后的每一步都会执行

2、逐过程就是会在主函数中一步步执行,不发生跳转。

3、同样,跳出也是仅在主函数中调试,从一个断点跳到下一个断点

视频中我们通过设置函数来举例说明三者的区别:

三个不同的断点调试方式

4、degug和release模式下的调试有什么区别?

🔎在Debug模式下,代码通常被编译为未经优化的可执行文件。这样做的目的是为了方便开发人员进行调试和排错。在Debug模式下,编译器会保留更多的调试信息,如变量名、函数名、源代码行号等。这些信息对于开发人员来说非常有用,因为它们能够在出现问题时提供更详细的错误信息。

🔎而在Release模式下,代码通常会被编译为优化后的可执行文件,以提高程序的性能和执行速度。在这种模式下,编译器会删除大部分调试信息,以减小可执行文件的大小。这意味着在Release模式下,出现错误时可能只会得到一般性的错误信息,而不会提供具体的行号或变量名。
因此需要调试的我们应该选择dubug模式
我们通过视频对比进行直观的说明:

在两种不同模式下的调试区别

5、无断点,调试和执行有无区别?

此外我们通过试验可知在无断点的情况下,其实调试和执行没有什么区别,我们直接点击调试即可。他们都是直接输出结果。

无断点的情况下调试和执行没有什么区别

在这里插入图片描述

相关文章:

【计算机基础】VS断点调试,边学边思考

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...

BD就业复习第五天

1. 核心组件的优化:hive、spark、flink 针对Hive、Spark和Flink这三个核心组件,以下是它们的优化和一些常见面试题以及详细的回答: 1. Hive 优化 面试问题1:什么是Hive?为什么需要对Hive进行优化? 回答…...

ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl‘

报错: ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1, currently the ‘ssl’ module is compiled with OpenSSL 1.1.0h 27 Mar 2018.解决办法:将urllib3的版本降低 pip install urllib31.26.15参考 python包报错ImportError: urllib3 v2.…...

Qt5开发及实例V2.0-第十二章-Qt多线程

Qt5开发及实例V2.0-第十二章-Qt多线程 第12章 Qt 5多线程12.1 多线程及简单实例12.2 多线程控制12.2.1 互斥量12.2.2 信号量12.2.3 线程等待与唤醒 12.3 多线程应用12.3.1 【实例】:服务器编程12.3.2 【实例】:客户端编程 本章相关例程源码下载1.Qt5开发…...

Windows 修改系统默认字体

Windows Registry Editor Version 5.00; 重装机后电脑屏幕及字体调整.reg.lnk ;; 显示器分辨率: 3840*2160 ;; 自定义缩放: 266 ;; 辅助功能 - 文本大小 - 110% ;; 最后 ClearType 文本调谐器; https://www.cnblogs.com/bolang100/p/8548040.html#WINDOWS 10 显示中的仅更改文…...

图像处理软件Photoshop 2024 mac新增功能

Photoshop 2024 mac是一款图像处理软件的最新版本。ps2024提供了丰富的功能和工具,使用户能够对照片、插图、图形等进行精确的编辑和设计。 Photoshop 2024 mac软件特点 快速性能:Photoshop 2024 提供了更快的渲染速度和更高效的处理能力,让用…...

JavaScript之观察者模式

本文作者为 360 奇舞团前端开发工程师 概述 在日常开发中,开发人员经常使用设计模式来解决软件设计中的问题。其中,观察者模式是一种常用的模式,它可以帮助开发人员更好地处理对象之间的通信。在 JavaScript 中,观察者模式的应用非…...

深入了解ln命令:创建硬链接和符号链接的实用指南

文章目录 1. 引言1.1 关于ln命令1.2 ln命令的作用和用途 2. 基本用法2.1 创建硬链接2.2 创建符号链接2.3 区别硬链接和符号链接 3. 操作示例3.1 创建硬链接的示例3.2 创建符号链接的示例3.3 查看链接信息 4. 注意事项和常见问题4.1 文件路径4.2 软链接的相对路径4.3 软链接的更…...

虚拟IP技术

1.说明 虚拟IP(Virtual IP Address,简称VIP)是一个未分配给真实弹性云服务器网卡的IP地址。 弹性云服务器除了拥有私有IP地址外,还可以拥有虚拟IP地址,用户可以通过其中任意一个IP(私有IP/虚拟IP&#xf…...

蓝桥杯 题库 简单 每日十题 day5

01 字符计数 字符计数 题目描述 给定一个单词,请计算这个单词中有多少个元音字母,多少个辅音字母。 元音字母包括a,e,i,o,u,共五个,其他均为辅音字母。 输入描述 输入格式: 输入一行&#xff0…...

【计算机网络】图解路由器(一)

图解路由器(一) 1、什么是路由器?2、什么是路由选择?3、什么是转发?4、路由器设备有哪些类型?5、根据性能分类,路由器有哪些类型?5.1 高端路由器5.2 中端路由器5.3 低端路由器 6、什…...

C语言文件的相关操作

C语言中文件的相关操作 文件的打开 使用文件的打开函数需要引入这个头文件&#xff1a;#include <fcntl.h> open函数 int open(char const *pathname, int flags, mode_t mode) 功能&#xff1a;打开已有的文件或者创建新文件参数 pathname&#xff1a;文件路径名&…...

Java入门级简单定时任务TimerTask

如果要执行一些简单的定时器任务&#xff0c;无须做复杂的控制&#xff0c;也无须保存状态&#xff0c;那么可以考虑使用JDK 入门级的定期器Timer来执行重复任务。 一、原理 JDK中&#xff0c;定时器任务的执行需要两个基本的类&#xff1a; java.util.Timer; java…...

Linux命令行教程:使用head和tail命令快速查看文件的开头和结尾

文章目录 简介A. 什么是head和tail命令B. head和tail命令的作用和用途 head命令A. 命令格式和语法B. 常见选项和参数1. -n&#xff1a;指定显示的行数2. -c&#xff1a;指定显示的字节数3. -v&#xff1a;显示文件名 C. 示例和应用实例1. 显示文件的前几行2. 显示多个文件的前几…...

[CISCN 2019 初赛]Love Math 通过进制转换执行命令

目录 hex2bin bin2hex base_convert 动态函数 第一种解法 通过get获取参数 绕过 第二种解法 读取请求头 getallheaders echo a,b 第三种解法 异或获得更多字符 这道题也是很有意思&#xff01; 通过规定白名单和黑名单 指定了 函数为数学函数 并且参数也只能是规…...

【Linux】系统编程生产者消费者模型(C++)

目录 【1】生产消费模型 【1.1】为何要使用生产者消费者模型 【1.2】生产者消费者模型优点 【2】基于阻塞队列的生产消费者模型 【2.1】生产消费模型打印模型 【2.2】生产消费模型计算公式模型 【2.3】生产消费模型计算公式加保存任务模型 【2.3】生产消费模型多生产多…...

【数据结构】图的应用:最小生成树;最短路径;有向无环图描述表达式;拓扑排序;逆拓扑排序;关键路径

目录 1、最小生成树 1.1 概念 1.2 普利姆算法&#xff08;Prim&#xff09; 1.3 克鲁斯卡尔算法&#xff08;Kruskal&#xff09; 2、最短路径 2.1 迪杰斯特拉算法&#xff08;Dijkstra&#xff09; 2.2 弗洛伊德算法&#xff08;Floyd&#xff09; 2.3 BFS算法&…...

大数据驱动业务增长:数据分析和洞察力的新纪元

文章目录 大数据的崛起大数据的特点大数据技术 大数据驱动业务增长1. 洞察力和决策支持2. 个性化营销3. 风险管理4. 产品创新 大数据分析的新纪元1. 云计算和大数据示例代码&#xff1a;使用AWS的Elastic MapReduce&#xff08;EMR&#xff09;进行大数据分析。 2. 人工智能和机…...

科技云报道:分布式存储红海中,看天翼云HBlock如何突围?

科技云报道原创。 过去十年&#xff0c;随着技术的颠覆性创新和新应用场景的大量涌现&#xff0c;企业IT架构出现了稳态和敏态的混合化趋势。 在持续产生海量数据的同时&#xff0c;这些新应用、新场景在基础设施层也普遍基于敏态的分布式架构构建&#xff0c;从而对存储技术…...

Java高级-动态代理

动态代理 1.介绍2.案例 1.介绍 public interface Star {String sing(String name);void dance(); }public class BigStar implements Star{private String name;public BigStar(String name) {this.name name;}public String sing(String name) {System.out.println(this.name…...

时序预测 | MATLAB实现POA-CNN-LSTM鹈鹕算法优化卷积长短期记忆神经网络时间序列预测

时序预测 | MATLAB实现POA-CNN-LSTM鹈鹕算法优化卷积长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现POA-CNN-LSTM鹈鹕算法优化卷积长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现POA-CNN-LSTM鹈鹕算法优化卷积长短…...

n个不同元素进栈,求出栈元素的【不同排列】以及【排列的数量】?

我在网上看的博客大部分是告诉你这是卡特兰数&#xff0c;然后只给出了如何求解有多少种排列&#xff0c;没有给出具体排列是怎么样的。如果你还不知道卡特兰数&#xff0c;请查看&#xff1a;https://leetcode.cn/circle/discuss/lWYCzv/ 这里记录一下如何生成每种具体的排列…...

Python中TensorFlow的长短期记忆神经网络(LSTM)、指数移动平均法预测股票市场和可视化...

原文链接&#xff1a;http://tecdat.cn/?p23689 本文探索Python中的长短期记忆&#xff08;LSTM&#xff09;网络&#xff0c;以及如何使用它们来进行股市预测&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 相关视频 在本文中&#xff0c;你将看到如何使用…...

多线程的学习第二篇

多线程 线程是为了解决并发编程引入的机制. 线程相比于进程来说,更轻量 ~~ 更轻量的体现: 创建线程比创建进程,开销更小销毁线程比销毁进程,开销更小调度线程比调度进程,开销更小 进程是包含线程的. 同一个进程里的若干线程之间,共享着内存资源和文件描述符表 每个线程被独…...

git之撤销工作区的修改和版本回溯

有时候在工作区做了一些修改和代码调试不想要了,可如下做 (1)步骤1:删除目录代码,确保.git目录不能修改 (2)git log 得到相关的commit sha值 可配合git reflog 得到相要的sha值 (3)执行git reset --hard sha值,可以得到时间轴任意版本的代码 git reset --hard sha值干净的代…...

sed awk使用简介

简介 本文主要介绍 Linux 系统的两个神级工具&#xff1a;sed 和 awk &#xff0c;他们是Linux高手们必备的技能&#xff0c;很值得我们去研究的东西。 这里是我在网上书上收集的相关资料&#xff0c;因为这两个工具很有名也很重要&#xff0c;所以这些资料会帮助我更好的了解…...

竞赛选题 基于深度学习的人脸识别系统

前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的人脸识别系统 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-senior/…...

idea Terminal 回退历史版本 Git指令 git reset

——————强制回滚历史版本—————— 一、idea Terminal 第一步&#xff1a;复制版本号 &#xff08;右击项目–> Git --> Show History -->选中要回退的版本–>Copy Revision Number&#xff0c;直接复制&#xff1b;&#xff09; 第二步&#xff1a;ide…...

华为云云耀云服务器L实例评测|华为云上安装监控服务Prometheus三件套安装

文章目录 华为云云耀云服务器L实例评测&#xff5c;华为云上试用监控服务Prometheus一、监控服务Prometheus三件套介绍二、华为云主机准备三、Prometheus安装四、Grafana安装五、alertmanager安装六、三个服务的启停管理1. Prometheus、Alertmanager 和 Grafana 启动顺序2. 使用…...

C语言基础知识点(八)联合体和大小端模式

以下程序的输出是&#xff08;&#xff09; union myun {struct { int x, y, z;} u;int k; } a; int main() {a.u.x 4;a.u.y 5;a.u.z 6;a.k 0;printf("%d\n", a.u.x); } 小端模式 数据的低位放在低地址空间&#xff0c;数据的高位放在高地址空间 简记&#xff…...

策划网站做营销推广/学校教育培训机构

缓存实现的过程以及淘汰旧页面的机制不同&#xff0c;所以会有不同缓存调度方法&#xff0c;就常见的就是FIFO&#xff0c;LRU&#xff0c;LFU缓存过期策略。 1.FIFO&#xff08;First In First out&#xff09;&#xff1a;先见先出&#xff0c;淘汰最先近来的页面&#xff0…...

做高端网站的公司/线下推广有哪些渠道

由于各种各样的原因&#xff0c;表格中出现了一些多余的空白行/空白列/空白单元格&#xff0c;怎样快速删除这些空白呢&#xff1f; 使用正则的来进行批量替换&#xff1a;^\n以换行符开头的信息替换成空。间接实现空行的删除。 替换成功后的效果:...

厦门做网站多少/百度官方人工客服电话

一&#xff0c;利用DirectX诊断工具查看硬件配置DirectX诊断工具可以帮助我们对硬件工作情况作出测试、诊断并进行修改&#xff0c;当然我们也可以利用它来查看机器的硬件配置。运行“系统信息”窗口&#xff0c;找到 “工具--DirectX诊断工具”(或者进入安装盘符中Windows目录…...

组织部建设网站示范材料/网站关键词优化工具

装饰模式&#xff1a;在不改变原类&#xff08;对象&#xff09;和继承的情况下动态扩展对象功能&#xff0c;通过包装一个对象来实现一个新的具有原对象相同接口的新的对象。在设计原则中&#xff0c;有一条&#xff0c;多用组合&#xff0c;少用继承&#xff0c;装饰模式正是…...

web旅游网站开发/网络策划是做什么的

【芝麻代理】请添加链接描述做新媒体运营经常遇到的问题是&#xff0c;我的网站每天都发布新文章&#xff0c;被百度收录的文章却很少&#xff0c;不知道是什么原因&#xff0c;如何让我发布的文章被百度收录&#xff1f;就此问题&#xff0c;个人总结了如下十一条经验&#xf…...

黄岩做网站/平台推广方案

Spring AOP获取拦截方法的参数名称跟参数值注意:这种方式需要JDK1.8版本支持开始:1.aop配置: 注意该配置需要配置在spring mvc的配置文件中,因为需要拦截controller层方法或者在必须要配置在spring配置文件中的情况下,同时需要拦截controller层的方法,可以在spring配置文件中加…...