C语言日记——调试篇

一、调试调试的基本步骤

发现程序错误的存在

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

确定错误产生的原因

提出纠正错误的解决办法

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

二、Debug和Release

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

便于程序员调试程序。

可以进行一步一步的调试

在对应文件夹

C语言日记——调试篇_第1张图片

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

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

  • 常用快捷键

最常使用的几个快捷键:

F5

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

F9

创建断点和取消断点

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

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

C语言日记——调试篇_第2张图片

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

F10

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

F11

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

CTRL+F5

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

没进入调试状态

C语言日记——调试篇_第3张图片

F10进入调试状态

C语言日记——调试篇_第4张图片

  1. 自动窗口

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

  1. 局部变量

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

  1. 监视

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

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

C语言日记——调试篇_第5张图片

  1. 内存

用内存功能查看数组地址

C语言日记——调试篇_第6张图片

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

C语言日记——调试篇_第7张图片

  1. 调用堆栈

C语言日记——调试篇_第8张图片

  1. 反汇编

把程序转换为汇编语言

练习和注意事项

栈区

C语言日记——调试篇_第9张图片

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

C语言日记——调试篇_第10张图片

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

strcpy(目标,内容)

C语言日记——调试篇_第11张图片

求字符串长度

C语言日记——调试篇_第12张图片

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

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

Assert(str)不让str为空指针,需要引用头文件

你可能感兴趣的:(c语言,开发语言,监督学习,学习)