项目开发中遇到的bug解决经验总结

今天在项目开发中遇到了两个很难解决的bug,我把我的思路记录下来,以供之后遇到bug时,提供一些思路:

编译通过,但总结"core dumped"

这个是写一个数据包捕捉函数的时候,程序编译通过,但是总是在实际执行的过程中总是出现"core dumped"

这个算是我最害怕遇到的问题,总找不到错的原因.后来给捕捉的数据包编号之后发现,有的数据包就是一个"NULL"

导致处理函数处理数据包的时候发生了错误.

给我的教训:

每写一个函数,必须要参数检查,千万不要想当然,认为不可能出现什么情况,但实际上就会出现什么情况

每当在出问题的地方,一些简单的测试方法说不能就能找出问题,比如说简单地给数据包编号

编译的过程出现"XXX"未定义的引用

这个如果说经历过这样的错误的人很容易就能搞清楚为什么出现这样的错误,可能是某些头文件没有#include到,但实际上我

找了半天也没发现不包括什么样的头文件.

我解决的过程就是将该功能孤立出来,做一个简单的程序,发现不存在这样的问题,后来通过重现编译过程,才发现是cmake文件

并没有添加一个文件夹

给我的教训:

出现问题,尽量把问题控制在足够小的范围,如果还没有找出来,那就单独写一个小程序,复现这个问题函数的错误过程,如果还没有发现问题,就尝试编译过程是否出现错误,这样一次检测下来,应该能够发现问题.

最新文章

  1. 系统不支持curl
  2. PHP商品秒杀倒计时
  3. 数学概念——D 期望
  4. ubuntu14.04 为Firefox安装flash插件
  5. Spring Bean 生命周期
  6. Docker - 生成镜像
  7. UX2 beta 3正式发布!!
  8. Windows下基于ADS+J-Link 的ARM开发环境搭建
  9. git本机服务器配置(三):Gitblit的安装
  10. thinkphp ckeditor与ckfinder
  11. CoreJava(一)—— Java迭代语句
  12. linux 日常中会用到的命令(持续更新)
  13. Curling 2.0(DFS简单题)
  14. jquery attr处理checkbox / select 等表单元素时只能使用一次的坑
  15. WMS - resource info
  16. MVC在母版页设置子页面的css和js引用布局
  17. 在PE32位下安装64位2003、2008系统
  18. Navicat Premium 激活码 序列号。破解版。
  19. Java--------------Windows下Redis的安装使用
  20. AD域中客户端时间与服务器同步

热门文章

  1. Flask中本地栈的使用
  2. 通过shell脚本进行linux服务器的CPU和内存压测
  3. mysql 清库
  4. 【C#】AssemblyLoadContext 加载程序集
  5. 01--c实现基础客户端和服务端与c++ boost.asio实现对比
  6. 【NumPy】 之常见运算(np.around、np.floor、np.ceil、np.where)(转)
  7. JZ-023-二叉搜索树的后序遍历序列
  8. (3)RabbitMQ交换器(Exchange)
  9. 『德不孤』Pytest框架 — 12、Pytest中Fixture装饰器(二)
  10. linux作业--第九周