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

C语言日记——调试篇

一、调试调试的基本步骤

发现程序错误的存在

以隔离、消除等方式对错误进行定位

确定错误产生的原因

提出纠正错误的解决办法

对程序错误予以改正,重新测试

二、Debug和Release

Debug通常称为调试版本,它包含调试信息,并且不作任何优化,

便于程序员调试程序。

可以进行一步一步的调试

在对应文件夹

Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用

不能一步一步调试也在对应文件夹但与debug版本内存大小会不同。

  • 常用快捷键

最常使用的几个快捷键:

F5

启动调试,经常用来直接跳到下一个断点处。

F9

创建断点和取消断点

断点的重要作用,可以在程序的任意位置设置断点。

这样就可以使得程序在想要的位置随意停止执行,继而一步步执行下去。

如果程序前面有scanf则需要把scanf完成

F10

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

F11

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

CTRL+F5

开始执行不调试,如果你想让程序直接运行起来而不调试就可以直接使用。

没进入调试状态

F10进入调试状态

  1. 自动窗口

什么都不用输入变量自己存在,会自动的把程序里的运行,进入函数里会把函数外的值给不显示,只显示函数里的变量。所以当需要观察全局时自动窗口不太方便!

  1. 局部变量

与自动窗口类似,观察程序运行过程中上下文的信息

  1. 监视

需要手动输入,但是都是自己想要观察的值,进入函数也不会消失而是变成灰色。最常用

监视窗口如果要监控void函数里的数组可以用【数组名,第几位】

  1. 内存

用内存功能查看数组地址

输入数组名字.列数可以自己输入,一行显示4列1列一个字节

  1. 调用堆栈

  1. 反汇编

把程序转换为汇编语言

练习和注意事项

栈区

此程序当i+到12之后会把i变0,因为发现i和arr{12}是同一个地址

当下标10过后适当的往后越界,就有可能到i的地址,当改到12的时候i也会更改就会导致程序的死循环。

strcpy(目标,内容)

求字符串长度

Char*是一个指针,str里面是字符h的地址

Const:修饰指针,让指针指向的内容不可以更改。

Assert(str)不让str为空指针,需要引用头文件<assert.h>

相关文章:

C语言日记——调试篇

一、调试调试的基本步骤 发现程序错误的存在 以隔离、消除等方式对错误进行定位 确定错误产生的原因 提出纠正错误的解决办法 对程序错误予以改正&#xff0c;重新测试 二、Debug和Release Debug通常称为调试版本&#xff0c;它包含调试信息&#xff0c;并且不作任何优化…...

【python】Django——templates模板、静态文件、django模板语法、请求和响应

笔记为自我总结整理的学习笔记&#xff0c;若有错误欢迎指出哟~ 【Django专栏】 Django——django简介、django安装、创建项目、快速上手 Django——templates模板、静态文件、django模板语法、请求和响应 Django——连接mysql数据库 Django——templates模板、静态文件、djang…...

Android设计模式--观察者模式

时间是一只藏在黑暗中温柔的手&#xff0c;在你一出神一恍惚之间&#xff0c;物走星移 一&#xff0c;定义 观察者模式是定义对象间一种一对多的依赖关系&#xff0c;使得每当一个对象改变状态&#xff0c;则所有依赖于它的对象都会得到通知并被自动更新 字面意思很好理解&am…...

【Linux】Ubuntu16.04下安装python高版本--源码安装

Ubuntu16.04下完美安装python高版本及对应版本的pip 方法一:直接用命令安装python3.6&#xff08;但我没安装成功&#xff09; 好像是因为Ubuntu16.04的软件仓库&#xff08;源&#xff09;中python的最高版本就是python3.5&#xff0c;所以无法直接用apt来安装 #方法一 sudo…...

变长子网划分问题的二叉树解法

计网的变长子网划分、计组的变长操作码划分、数据结构的哈夫曼编码&#xff0c;都是前缀编码的本质&#xff08;变长操作码的二叉树解法我还在琢磨中&#xff09; 【二叉树解法】每条从叶结点到根节点的路径上有且只有一个被分配的结点&#xff1a; 【例】现将一个IP网络划分成…...

编译安装redis及配置多实例

yum安装是这种十分简单的方法我们就不在提及了&#xff0c;今天我们来做一下redis的编译安装 Redis源码包官方下载链接&#xff1a;http://download.redis.io/releases/ 一、编译安装&#xff1a; 安装依赖包 dnf -y install make gcc jemalloc-devel systemd-devel如果是…...

网络(一)总纲

一 总纲 ① 背景 1、该资料不管是在华为内部还是外部都是很出名的2、该教程仅仅作为个人笔记,形成自己的网络知识体系,自己会按照教程手把手做实验,copy图谱备注&#xff1a; 自己没有处理过物理网和虚拟网,所以会以一个小白的角度去理解,可能存在偏差3、立足点&#xff1a…...

WPF中的App类介绍

在WPF (Windows Presentation Foundation) 应用程序中&#xff0c;App 类扮演着很重要的角色。这个类通常在每个WPF应用程序中都会有&#xff0c;并且生成在App.xaml文件和其代码后台App.xaml.cs中。App类通常继承自System.Windows.Application类&#xff0c;并且有以下的主要职…...

.nc格式文件的显示及特殊裁剪方式

最近我们遇到一个nc格式的文件&#xff0c;需要将它做成报告插图&#xff0c;bing搜索一番以后&#xff0c;了解到nc的全名为NetCDF(network Common Data Form)&#xff0c;是一种网络通用数据格式&#xff0c;广泛用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域。…...

为什么需要线程池?C++如何实现一个线程池?

为什么需要线程池&#xff1f;C如何实现一个线程池&#xff1f; 为什么需要线程池&#xff1f;C如何实现一个线程池&#xff1f;...

多视图聚类的论文阅读

当聚类的方式使用的是某一类预定义好的相似性度量时&#xff0c; 会出现如下情况&#xff1a; 数据聚类方面取得了成功&#xff0c;但它们通常依赖于预定义的相似性度量&#xff0c;而这些度量受原始方法的影响:当输入维数相对较高时&#xff0c;往往是无效的。 1. Deep Mult…...

shell脚本适用场景

1.适用场景 Shell脚本是一种用于自动化和批量处理任务的脚本语言。它通常在Unix/Linux系统中使用&#xff0c;并且被广泛应用于各种场景&#xff0c;包括但不限于以下几个方面&#xff1a; 自动化任务&#xff1a;Shell脚本可以用于编写自动化脚本&#xff0c;完成一系列重复性…...

Bash openldap同步AD组织数据

将AD的ou同步到openldap&#xff08;可支持全量同步和增量同步&#xff09; 整体思路如下&#xff1a; 从ad导出所有的数据&#xff0c;然后进行参数替换以及处理&#xff0c;处理后的文件称为A&#xff1b;从openldap导出所有的数据&#xff0c;然后进行参数替换以及处理&am…...

C#WPF文本转语音实例

本文介绍C#WPF文本转语音实例 实现方法:使用类库(SpeechSynthesizer )实现的。 一、首先是安装程序包。 二、创建项目 需要添加引用using System.Speech.Synthesis; UI界面 <Windowx:Class="TextToSpeechDemo.MainWindow"xmlns="http://schemas.micr…...

08-流媒体-RTMP拉流

整体方案&#xff1a; 采集端&#xff1a;摄像头采集&#xff08;YUV&#xff09;->编码&#xff08;YUV转H264&#xff09;->写封装&#xff08;&#xff28;264转FLV&#xff09;->RTMP推流 客户端&#xff1a;RTMP拉流->解封装&#xff08;FLV转H264&#xff09…...

一键免费去除视频水印和字幕的AI工具

最近有学员经常让我分享好用的智能抹除视频水印字幕AI工具&#xff0c;今天就给大家分享一个我经常用到的这款工具——腾讯智影&#xff0c;这个平台提供的智能抹除功能&#xff0c;借助这个工具我们可以将视频中不需要的字幕或者水印删除掉。 不过这款工具每天有三次免费次数…...

实验六:Android的网络编程基础

实验六&#xff1a;Android 的网络编程基础 6.1 实验目的 本次实验的目的是让大家熟悉 Android 开发中的如何获取天气预报&#xff0c;包括了 解和熟悉 WebView、WebService 使用、网络编程事件处理等内容。 6.2 实验要求 熟悉和掌握 WebView 使用 了解 Android 的网络编程…...

09-流媒体-FLV解复用

整体方案&#xff1a; 采集端&#xff1a;摄像头采集&#xff08;YUV&#xff09;->编码&#xff08;YUV转H264&#xff09;->写封装&#xff08;&#xff28;264转FLV&#xff09;->RTMP推流 客户端&#xff1a;RTMP拉流->解封装&#xff08;FLV转H264&#xff09…...

信息的浏览

万维网(WWW)是目前Internet上最流行的一种服务&#xff0c;它是建立在Internet上的多媒体集合信息系统。它利用超媒体的信息获取技术&#xff0c;通过一种超文本的表达方式&#xff0c;将所有WWW上的信息连接在一起。我们使用浏览器浏览网上的信息。 ▶浏览器 浏览器是指可以…...

vue directive自定义指令实现弹窗可拖动

vue2 创建一个js文件 // draggable.js export default {// 定义 Vue 插件install(Vue) {Vue.directive(draggable, { // 全局指令名为 v-draggableinserted(el) {el.onmousedown function (ev) {// 获取鼠标按下时的偏移量&#xff08;鼠标位置 - 元素位置&#xff09;const…...

SDMatte效果对比评测:与传统抠图工具及在线API的全面比拼

SDMatte效果对比评测&#xff1a;与传统抠图工具及在线API的全面比拼 1. 开篇&#xff1a;为什么需要新的抠图方案 在数字内容创作领域&#xff0c;抠图一直是个让人又爱又恨的技术活。记得去年帮朋友做电商产品图&#xff0c;光是给20个商品抠图就花了我整整一个周末。传统工…...

快速部署MinerU镜像:开箱即用的PDF提取方案,告别繁琐配置

快速部署MinerU镜像&#xff1a;开箱即用的PDF提取方案&#xff0c;告别繁琐配置 1. 引言&#xff1a;为什么你需要一个“开箱即用”的PDF提取工具&#xff1f; 如果你曾经尝试过从一份复杂的PDF文档里提取文字、表格和公式&#xff0c;你大概率经历过这样的痛苦&#xff1a;…...

FunASR Docker部署避坑大全:从SSL证书报错到热词不生效,一次解决所有常见问题

FunASR Docker实战排障指南&#xff1a;从证书配置到热词优化的深度解决方案 当你第一次尝试在Docker环境中部署FunASR语音识别服务时&#xff0c;那些看似简单的命令行参数背后可能藏着无数个"坑"。本文不会重复官方文档的基础操作&#xff0c;而是聚焦于五个最具代…...

MariaDB Docker容器权限配置问题分析与解决方案

MariaDB Docker容器权限配置问题分析与解决方案 1. 问题背景 在使用MariaDB Docker容器时&#xff0c;用户遇到了远程访问权限配置失效的问题。具体表现为&#xff1a; 手动创建的远程用户&#xff08;如root%、****%、********%&#xff09;在容器重启后无法远程连接权限表中显…...

从‘腐蚀液’到‘设计美学’:PCB布线‘禁止直角’这条规则是怎么流行起来的?

从工艺限制到设计美学&#xff1a;PCB布线"禁止直角"规则的历史演变 在电子工程领域&#xff0c;PCB布线中"禁止直角"的规则几乎成为了一种行业圣经。从大学实验室到商业设计部门&#xff0c;新手工程师们总是被反复告诫要避免在布线中使用90度转角。但有趣…...

实战指南:在快马平台用trae构建电商购物车状态管理系统

今天想和大家分享一个实战项目&#xff1a;用trae在电商场景下构建购物车状态管理系统。这个方案特别适合需要清晰数据流的中小型项目&#xff0c;比如电商平台、管理后台等。下面我会详细拆解整个实现过程&#xff0c;希望能给有类似需求的同学一些参考。 项目结构设计 首先…...

FPGA网络加速入门:拆解Xilinx 7系列GTP与1G/2.5G Ethernet PCS/PMA IP核,搞懂SGMII接口那些事

FPGA网络加速实战&#xff1a;从Xilinx GTP架构到SGMII接口的深度解析 在FPGA高速通信领域&#xff0c;以太网接口设计一直是工程师面临的核心挑战之一。当我们需要在Xilinx 7系列FPGA上实现1G/2.5G以太网功能时&#xff0c;GTP收发器与PCS/PMA IP核的配置往往成为项目成败的关…...

PDF-Parser-1.0行业报告:市场分析与技术趋势

PDF-Parser-1.0行业报告&#xff1a;市场分析与技术趋势 1. 引言 每天都有成千上万份行业报告、白皮书和研究文档以PDF格式在企业间流转。这些文档蕴含着宝贵的市场洞察、技术趋势和商业机会&#xff0c;但手动提取和分析这些信息需要耗费大量时间和精力。PDF-Parser-1.0的出…...

OpenClaw数据安全:Qwen3.5-4B-Claude本地处理敏感合同

OpenClaw数据安全&#xff1a;Qwen3.5-4B-Claude本地处理敏感合同 1. 为什么法律行业需要本地化AI处理 去年我参与了一个法律科技项目&#xff0c;团队最初尝试用公有云API处理合同文本时&#xff0c;遭遇了客户对数据出海的强烈抵触。某次演示中&#xff0c;当法务总监看到合…...

Ubuntu:无网络环境下Docker离线部署全攻略

1. 离线部署Docker的核心挑战与解决方案 在完全隔离网络的环境中部署Docker&#xff0c;就像要在荒岛上搭建一个现代化厨房——所有食材和工具都得提前准备好。我经历过三次企业级离线部署&#xff0c;最深刻的一次是在某金融机构数据中心&#xff0c;他们的服务器甚至不允许插…...