调试之前首先要保证我们的脑袋是清晰的,我们调试的过程主要是看代码有没有按照我们的想法去运行

调试最常使用的几个快捷键

F5

启动调试,经常用来直接跳到下一个断点处(F5通常和F9配合使用,打了断点按F5程序可以直接运行到断点处,这样提高了调试效率)

F9

创建断点和取消断点(可以在程序的任意位置设置断点,这样可以让程序在随意的位置停止执行,继而一步步执行下去)

按F5后直接运行到17行(这样就不用手动让for循环一次次走完了)

(可以在调试框监视你想看的变量)

中间带加号的是条件断点,可以右击鼠标进行设置条件,只有满足条件才运行到这个断点

F10

逐过程,通常用来处理一个过程,这个过程可以是一次函数调用或者是一条语句。

F11

逐语句,即每次执行一条语句,但是这个快捷键可以使我们的执行逻辑进入函数的内部(这是最常用的)

F10和F11有区别,F11可以进到Add函数内部(但是现在的编译器一般不支持调试库函数),F10不会,所以F11更加细致

Ctrl+F5

直接执行不调试

自动窗口会自动把程序的变量信息显示

监视窗口可以打开多个

a,4可以看到4个元素

a,10可以看见10个元素

还可以查看内存

调试可以看函数堆栈,反汇编,寄存器等

调试练习:

这段代码是死循环,通过调试的方法发现问题

已经越界访问了,但是可以改arr[10]的值,hehe也正常打印

但是改完arr[12]后,i又会变回0,这样子循环往复,变成死循环

i在变的时候arr[12]也在变,并且值变化相同,说明他们在同一块空间上

vs arr和i之间是两个空间,但是不同的编译器可能不同

用assert要包含头文件

实例理解:

要学会写优秀的代码

str只是提供元素的内容,不需要被改变,用const修饰能让代码更加健壮

避免传过来的是空指针可以加上assert进行判断

链接性错误可以通过查找(Ctrl+F)发现错误

运行时错误是编译和链接都没问题,但是结果有问题或者其他情况,这个要通过调试解决问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/93635.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93635.shtml
英文地址,请注明出处:http://en.pswp.cn/web/93635.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL深度理解-Innodb底层原理

1.MySQL的内部组件结构大体来说,MySQL可以分为Server层和存储引擎层两部分。2.Server层Server层主要包括连接器、查询缓存、分析器、优化器和执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数据和加密…

QFtp在切换目录、上传文件、下载文件、删除文件等一系列操作时,如何按照预期操作指令顺序执行

FTP服务初始化时,考虑到重连、以及commandFinished信号信号执行完成置m_bCmdFinished 为true; void ICore::connectFtpServer() {if(g_pFile nullptr){g_pFile new QFile;}if(g_pFtp){g_pFtp->state();g_pFtp->abort();g_pFtp->deleteLater();g_pFtp n…

JavaSE高级-02

文章目录1. 多线程1.1 创建线程的三种方式多线程的创建方式一:继承Thread类多线程的创建方式二:实现Runnable接口多线程的创建方式三:实现Callable接口三种线程的创建方式对比Thread的常用方法1.2 线程安全线程同步方式一:同步代码…

从舒适度提升到能耗降低再到安全保障,楼宇自控作用关键

在现代建筑的发展历程中,楼宇自动化控制系统(BAS)已从单纯的设备管理工具演变为集舒适度优化、能耗控制与安全保障于一体的核心技术。随着物联网和人工智能的深度应用,楼宇自控系统正以数据为纽带,重构人与建筑的关系。…

图像分类精度评价的方法——误差矩阵、总体精度、用户精度、生产者精度、Kappa 系数

本文详细介绍 “图像分类精度评价的方法”。 图像分类后,需要评估分类结果的准确性,以判断分类器的性能和结果的可靠性。 常涉及到下面几个概念(指标) 误差矩阵、总体精度、用户精度、生产者精度和 Kappa 系数。1. 误差矩阵&#…

【科普向-第一篇】数字钥匙生态全景:手机厂商、车厂与协议之争

目录 一、协议标准之争:谁制定规则,谁掌控入口 1.1 ICCE:中国车企主导的自主防线 1.2 ICCOA:手机厂商的生态突围 1.3 CCC:国际巨头的高端壁垒 1.4 协议对比 二、底层技术路线:成本与安全的博弈 2.1B…

dockerfile及docker常用操作

1: docker 编写 Dockerfile 是用于构建 Docker 镜像的文本文件,包含一系列指令和参数,用于定义镜像的构建过程 以下是关键要点: 一、基本结构 ‌FROM‌:必须作为第一条指令,指定基础镜像(如 FROM python:3.…

[vibe coding-lovable]lovable是不是ai界的复制忍者卡卡西?

在火影忍者的世界里,卡卡西也被称为复制忍者,因为大部分忍术都可以被其Copy! 截图提示:实现这个效果 -> 发给Lovalbe -> 生成的的效果如下,虽然不是1比1还原,但是这个效果也很惊艳。 这个交互设计,这个UI效果&am…

技术赋能安全:智慧工地构建城市建设新防线

城市建设的热潮中,工地安全始终是关乎生命与发展的核心议题。江西新余火灾等事故的沉痛教训,暴露了传统工地监管的诸多短板——流动焊机“行踪难觅”,无证动火作业屡禁不止,每一次监管缺位都可能引发灾难性后果。如今,…

Sublime Text 代码编辑器(Mac中文)

原文地址:Sublime Text Mac 代码编辑器 sublime text Mac一款轻量级的文本编辑器,拥有丰富的功能和插件。 它支持多种编程语言,包括C、Java、Python、Ruby等,可以帮助程序员快速编写代码。 Sublime Text的界面简洁、美观&#…

如何制定项目时间线,合理预计?

制定一份现实可行且行之有效的项目时间线,是一个系统性的分解、估算与排序过程,而非简单的日期罗列。核心步骤包括:明确项目范围与可交付成果、利用工作分解结构(WBS)进行任务拆解、科学估算各项任务的持续时间、识别并…

RSA详解

一、RSA 简介RSA 是一种公钥密码体制,由罗纳德・李维斯特(Ron Rivest)、阿迪・萨莫尔(Adi Shamir)和伦纳德・阿德曼(Leonard Adleman)于 1977 年提出,算法名称由他们三人姓氏的首字母…

Linux获取物理硬盘总容量

获取物理硬盘总容量: 1.查看单个硬盘: 使用 lsblk 或 fdisk -l (需要 sudo) 命令。它们会直接列出物理硬盘 (sda, nvme0n1 等) 和它们的分区,并显示硬盘的总物理容量。 abcd四块物理盘,只挂载使用3块,留一块未使用 最常见的原因通常是配置了热备盘(RAID 1/5/6/10 等冗余…

STM32学习笔记14-I2C硬件控制

I2C外设简介STM32内部集成了硬件I2C收发电路(硬件收发器:自动生产波形,自动翻转电平等),可以由硬件自动执行时钟生成、起始终止条件生成、应答位收发、数据收发等功能,减轻CPU的负担——软件只需要写入控制…

电子电气架构 --- 软件开发数字化转型

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…

我国空间站首次应用专业领域 AI大模型

据中国载人航天工程办公室消息,北京时间2025年8月15日22时47分,经过约6.5小时的出舱活动,神舟二十号乘组航天员陈冬、陈中瑞、王杰密切协同,在空间站机械臂和地面科研人员的配合支持下,圆满完成既定任务,出…

WPF真入门教程35--手搓WPF出真汁【蜀味正道CS版】

1、项目介绍 本项目采用多层架构设计,使用wpf,Panuon.UI.Silver控件库,AduSkin皮肤,MVVM等技术开发具有复杂交互和视觉效果的CS应用程序。WPF适用于企业级桌面应用:如ERP、CRM系统,需复杂表单和报表。WPF适…

JMeter与大模型融合应用之构建AI智能体:评审性能测试脚本

JMeter与大模型融合应用之构建AI智能体:评审性能测试脚本 一、引言 随着DevOps和持续测试的普及,性能测试已成为软件开发生命周期中不可或缺的环节。Apache JMeter作为最流行的开源性能测试工具之一,被广泛应用于各种性能测试场景。然而&…

K8s 和 Docker的区别

一、各自诞生背景——为什么需要两个东西Docker(2013,Docker Inc.) • 目的:解决“我的代码在你机器跑不起来”的经典环境问题。 • 做法:用 Linux 内核的 cgroup/namespace 做轻量隔离,把“应用 依赖”打…

10.0 UML的介绍以及VisualStudio中查看类图

本文介绍UML图的含义、以及如何在VisualStudio中查看类图。 一、UML图介绍 UML(Unified Modeling Language,统一建模语言)是一种标准化的建模语言,用于可视化、规范、构建和记录软件系统的各个方面的图表工具。 UML图分为结构图和行为图两大类: 结构图‌…