• 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为空指针,需要引用头文件

  • 相关阅读:
    什么是 HTTPS 的证书信任链?自己给自己发行不行?
    git:二、git的本地配置+工作区域和文件状态+git add/commit/log +git reset回退版本
    指导与管理项目执行
    [附源码]计算机毕业设计汽车美容店管理系统Springboot程序
    Django笔记十八之save函数的继承操作和指定字段更新等实例方法
    win10你的设备遇到问题,需要重启的五种解决方法
    第5讲 使用pytorch实现线性回归
    Using Set Processing Effectively 有效地使用集合处理
    sklearn包中对于分类问题,如何计算accuracy和roc_auc_score?
    Valens VA6000 USB2.0延长器
  • 原文地址:https://blog.csdn.net/bearbearwww/article/details/134471390