• 调试篇


    --------------------------------------------调试篇
    错误类型:
    编译错误:通常都是语法错误
    运行错误:比如分母是0

    提示报错的时候:
    1.双击提示信息可以直接定位到报错的行
    2.从上到下的调试程序,因为后面的报错是有可能是因为前面的报错而引起的连锁反应

    Bug:错误,漏洞
    Debug:是找出错误,调式

    描述问题的3要素:
    1.前提条件是什么
    2.预期结果是什么
    3.实际结果是什么


    重现或者复现
    可以重现:是指输入相同时,都能重现相同的问题,那么问题是可以复现,重现的
    不可重现:是指输入相同时,但问题不重现,那么就成为不可重现,或者不可复现

    可以重现的问题,一般都比较好解决
    不可重现的问题,处理起来可能会稍微麻烦点

    定位问题:
    找到出问题的地方

    调试技术:
    我个人觉得的2种程序形式的调试方式
    附加进程:项目中经常遇到这种的
    启动调试:练习语法的通常用这样的

    断点<break point f9>
    当程序运行到此行的时候会暂停,进入单步模式
    break有中断的意思,所以程序运行到这里的时候,是会停下来的

    逐语句 = 单步调试<step over f10>:
    就是走一步看一下结果,边走边看结果,直到发现哪一步出问题了
    1.程序是由很多步组成的
    2.如果每一步都正确,那么最终结果也应该是正确的

    逐过程 f11:
    直接进入函数体
    其实还是用单步调试方便,也就多打1个断点而已

    退出函数<shift + f11>:
    这个倒是比较实用

    继续运行<continue f5>
    继续运行程序,直到下一个断点,或者程序结束,就这2种情况

    黄色箭头:表示即将执行这一行的代码,但是还没执行呢

    调式和试图 可以打开各种各样的窗口:
    1.调试窗口
    2.输出窗口
    3.断点窗口
    4.查找窗口
    5.局部变量窗口
    6.监视窗口 可以查看全局变量,也可以查看局部变量
    7.内存窗口
    监视,局部窗口可以直接修改变量值的,而且是"实时"生效的

    等等,有很多的,以后再补充

    单元测试<unit test>:
    就是将一个大的程序,划分成若干单元进行测试
    当代码越来越多的时候,将代码封装成多个函数,那么每个函数可以当作是一个单元

    如果每个单元的结果都是正确的,那么各个单元连在一起的是,运行的结果也是正确的

    测试用例<TestCase>
    就是提供各种不同的输入,查看结果
    我觉得是主要是把可能引起的临界值都测试一下

    如果有修改的话,那么是要重新再测试一次的
    最后在联调测试

    调用堆栈:
    各个函数之间的调用关系或者说函数的调用层次,一个叼意思
    每个函数内部的局部变量的值,形参是局部变量哦

    程序崩溃:
    "需要把 阿发 的官网的文档下载下来,里面的实例比较多 "

    c/c++的特点之一:
    优点灵活高效,缺点容易出错,程序崩溃

    中断:可以直接定位到程序出错的地方


    结构体字节填充:
    也就是 对齐 操作
    应该是以1个标准单位来计算的..小类型提升到标准类型

  • 相关阅读:
    通过strace 监控 fdatasync
    RAID 2.0
    AHCI vs NVMe
    NVMe 图解
    详解linux运维工程师入门级必备技能
    条带深度 队列深度 NCQ IOPS
    NVMe 与 AHCI
    IO负载高的来源定位 IO系列
    磁盘性能指标--IOPS 理论
    java程序员从笨鸟到菜鸟系列
  • 原文地址:https://www.cnblogs.com/Froger/p/5880097.html
Copyright © 2020-2023  润新知