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>

相关推荐
Navigator_Z1 小时前
LeetCode //C - 1208. Get Equal Substrings Within Budget
c语言·算法·leetcode
浔溺2 小时前
al+大数据每日学习笔记26
笔记·学习
xx~t2 小时前
嵌入式——进程与线程1
linux·c语言·学习·嵌入式·进程与线程
m0_547486662 小时前
《JavaScript核心原理 》全套PPT课件2026
开发语言·javascript·ecmascript
老当益壮梁奶奶2 小时前
Linux软件编程学习笔记(七):线程分离与线程间通信详解
linux·c语言·c++·笔记·学习
MC皮蛋侠客3 小时前
Tauri 2.x 系列(五):调用系统 API——官方插件、Rust crate 与原生能力
开发语言·后端·rust
布莱克6053 小时前
软中断和硬中断的区别
开发语言·操作系统
我命由我123454 小时前
UI 设计 7 种排列方式
xml·学习·ui·html·产品运营·产品经理·学习方法
whcyhhh4 小时前
头歌实践教学平台:数据科学与大数据技术导论(十二)
大数据·开发语言·python·数据清洗
常驻客栈4 小时前
B-深入理解计算机系统第3版之第8章:异常控制流
笔记·学习·常驻客栈·深入理解计算机系统·学习笔记‘’