查找bug的一些经验总结
项目开发中遇到的bug解决经验总结
今天在项目开发中遇到了两个很难解决的bug,我把我的思路记录下来,以供之后遇到bug时,提供一些思路:
编译通过,但总结"core dumped"
这个是写一个数据包捕捉函数的时候,程序编译通过,但是总是在实际执行的过程中总是出现"core dumped"
这个算是我最害怕遇到的问题,总找不到错的原因.后来给捕捉的数据包编号之后发现,有的数据包就是一个"NULL"
导致处理函数处理数据包的时候发生了错误.
给我的教训:
每写一个函数,必须要参数检查,千万不要想当然,认为不可能出现什么情况,但实际上就会出现什么情况
每当在出问题的地方,一些简单的测试方法说不能就能找出问题,比如说简单地给数据包编号
编译的过程出现"XXX"未定义的引用
这个如果说经历过这样的错误的人很容易就能搞清楚为什么出现这样的错误,可能是某些头文件没有#include到,但实际上我
找了半天也没发现不包括什么样的头文件.
我解决的过程就是将该功能孤立出来,做一个简单的程序,发现不存在这样的问题,后来通过重现编译过程,才发现是cmake文件
并没有添加一个文件夹
给我的教训:
出现问题,尽量把问题控制在足够小的范围,如果还没有找出来,那就单独写一个小程序,复现这个问题函数的错误过程,如果还没有发现问题,就尝试编译过程是否出现错误,这样一次检测下来,应该能够发现问题.
查找bug的一些经验总结的更多相关文章
- 7.哪些工具可以帮助查找bug或进行静态分析
哪些工具可以帮助查找bug或进行静态分析? PyChecker is a static analysis tool that detects the bugs in Python source cod ...
- [cocos2dx]利用NDK崩溃日志查找BUG
摘要: 在android上开发c++应用, crash日志都是汇编码, 很难对应到c++代码中去. 通过此文, 你可以定位到程序崩溃时的C++代码, 精确查找问题. 博客: http://www.cn ...
- 【总结】使用jdbc+servlet开发一个bug管理系统的经验总结
开发背景: 公司目前使用Teambition里面的task作为bug管理系统,既没有bug的当前状态,也不能写上bug的详细复现步骤,被assign了任务(该修复bug或者验证bug是否被修复)也没有 ...
- 从 Android 静音看正确的查找 bug 的姿势
0.写在前面 没抢到小马哥的红包,无心回家了,回公司写篇文章安慰下自己TT..话说年关难过,bug多多,时间久了难免头昏脑热,不辨朝暮,难识乾坤...艾玛,扯远了,话说谁没踩过坑,可视大家都是如何从坑 ...
- 利用NDK崩溃日志查找BUG
转自:http://www.tuicool.com/articles/qQNfUfe 背景介绍 本文主要内容: 利用android的crash log来对c++开发的android应用进行错误定位. ...
- IDEA插件之自动查找bug工具
打开idea 插件搜索界面 输入 FindBugs-IDEA,安装完成后重启,选中要查找的包,右键找到对应的 FindBugs就可以开始进行自动扫描了
- 查找BUG的方法
1)测试环境 1)代码调试 2)问题重现 3)思考问题所在 2)生产环境 1)思考 2)测试本地环境是否存在问题 3)打开日志查看 4)思考是否是数据原因 5)拷贝数据到本地进行重现 3)未知错误 1 ...
- 记一次PHP7+opcache+zmq出现SIGSEGV 问题的查找(一次不成功的bug查找)
Title: 记一次PHP7+opcache+zmq出现SEGSEGV问题的查找(一次不成功的bug查找) bug来历自述:线上代码PHP环境是5.2,为了提升性能(逼格),于是升级为PHP7并使用 ...
- 使用Nsight查找CE3的渲染bug
工作临时的接的一个小任务,查找ce3引擎修改后在绘制上出的一点bug 在代码的底层调用代码做了一些修改后,场景里的绘制的问题,因为也是刚接触CE3代码,也只能通过Nsight来查找问题了. 首先用 ...
随机推荐
- 创建jsp页面出现The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path错误
原因未添加tomcat服务器 第一步: 第二步:
- OpenHarmony移植:如何适配utils子系统之KV存储部件
摘要:本文介绍移植开发板时如何适配utils子系统之KV存储部件,并介绍相关的运行机制原理. 本文分享自华为云社区<OpenHarmony移植案例与原理 - utils子系统之KV存储部件> ...
- python-xlutils模块-修改excel
前言 xlrd库用于读取excel文件中的数据,xlwt库用于将数据写入excel文件,修改用xlutils模块: xlutils库也仅仅是通过复制一个副本进行操作后保存一个新文件,像是xlrd库和x ...
- [题解]UVA10986 Sending email
链接:http://vjudge.net/problem/viewProblem.action?id=24941 描述:n个点,m条边的无向图,寻找从S到T的最短路. 思路:基础的单源点最短路 用Di ...
- 【C# 集合】HashTable .net core 中的Hashtable的实现原理
上一篇我介绍了Hash函数 这篇我来说一下Hash函数在 HashTable中的应用. HashTable的特性: 1.装载因子:.net core 0.72 ,java 0.75 2.冲突解决方案: ...
- oj教程--排序算法(Java)
import java.util.ArrayList; import java.util.List; /** * 排序算法主类 * * @author eric */ class SortArray ...
- Pycharm:控制台输入输出In Out变为<<<
Setting中取消勾选'Use IPython if aviable'
- C# Md5Hash
/// <summary> /// MD5 32位加密(大写) /// </summary> /// <param name="str">< ...
- LeetCode-099-恢复二叉搜索树
恢复二叉搜索树 题目描述:给你二叉搜索树的根节点 root ,该树中的两个节点被错误地交换.请在不改变其结构的情况下,恢复这棵树. 进阶:使用 O(n) 空间复杂度的解法很容易实现.你能想出一个只使用 ...
- Spring Boot项目微信云托管入门部署
微信云托管本身是一个服务器,里面的软件都已经配置好了,直接使用即可,适用于一些简单部署的项目.直接把项目直接上传到服务器即可.无需各种繁琐的软件配置和打包,微信云托管统统给你搞定.而且系统会根据使用量 ...