查找bug的方法(随笔)
1.入(出)口推进法
这种查找方式一般用在查逻辑bug等问题,也是我认为最简单,但是最根本的方法。首先要找到最开始的调用入口,在每一个调用的入口打印日志或者设置断点,一步步向前推进查找代码行走的轨迹,最终找到问题所在。出口,就是反过来推进,道理是一样的。
2.异常分析法
这种就是根据错误日志分析故障,很多时候遇到故障直接把故障信息copy到百度,这种确实可以解决一部分问题,但是遇到很多问题,直接搜索是搜不到的,需要分析后查到根本原因,才能找到解决方案。
举几个例子:
(1)挂载的时候,提示这个错误:
amount: 文件系统类型错误、选项错误 上有坏超级块、
缺少代码页或助手程序,或其他错误
(对某些文件系统(如 nfs、cifs) 您可能需要
一款 /sbin/mount.<类型> 助手程序)
有些情况下在 syslog 中可以找到一些有用信息- 请尝试
dmesg | tail 这样的命令看看。
从日志关键字 : 缺少代码页或助手程序,或其他错误 (对某些文件系统(如 nfs、cifs) 您可能需要 一款 /sbin/mount.<类型> 助手程序) 推论出挂载需要安装挂载客户端,
所以根据系统的类型安装对应的挂载客户端即可:
Redhat版本: yum install nfs-utils
CentOS版本:sudo apt-get install nfs-common
(2)docker 编译java服务的时候,编译到一半报错:
FROM java:8 无法识别 unkown java
这个时候去网上搜,会发现相关的信息很少,不能解决我的问题,只能通过分析来查问题。
1.在代码中搜索FROM java:8 在dockerfile中找到了这个,然后想着java 8 对应的应该就是jdk1.8(之前有配置过jdk1.8)了,于是怀疑环境出问题了,就想着从配置docker java环境入手,但是还是不能解决。
2.后通过查询From了解到是和镜像有关,测试把java:8换成了java:7或者java:9或centos:7都可以,发现可以编译通过,但是服务器允许会报错,因为代码sdk用的是1.8版本,通过查询docker镜像查询到有镜像java:7和 java:9没有镜像java:8,就想到可能是被删除了。
3.通过查询docker 制作java 镜像,重新制作了java镜像,重新编译后,问题果然得到了解决。
后续
查找bug的方法(随笔)相关推荐
- 解决bug问题,查找bug的方法
想告别"写代码2分钟,找bug两小时"吗?,就必须掌握查找bug的能力 下面这些方法都是我这几年解决bug常用的 一.定位bug:如果在控制台中看不出bug,可以使用以下方法帮助查 ...
- eclipse快捷键 包括查找类、方法、变量
[Ct rl+T] 搜索当前接口的实现类 1. [ALT +/] 此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类.方法和属性的名字时,多体验一下 ...
- 常用 BUG 解决方法
扯淡 随着工作时间越来越长,对于代码的理解也越来越多!关注重点也渐渐地从代码本身转移到了代码结构性.解决问题方法性等方面.下面就来说一说,在遇到代码BUG,我们常用的一些方法! 二分定位法 通 ...
- android开发如何快速定位bug_三种bug定位方法
1.定位bug产生的过程 测试用例的执行,基本上是程序运行过程bug产生的开始,若测试结果与期望结果有出入,即出现了错误征兆,定位bug过程首先要找出bug产生的原因,然后对bug进行修正.因此定位b ...
- vscode 格式化某一段代码_VSCode格式化代码功能失效的bug解决方法
VSCode格式化代码功能失效的bug解决方法 前不久我装上了 黑苹果,那么为了快速转移开发环境,我使用了VSCode(Visual Studio Code下面简称VSCode)的插件 Setting ...
- 一分钟详解initUndistortRectifyMap函数bug修复方法
本文首发于微信公众号「3D视觉工坊」--一分钟详解initUndistortRectifyMap函数bug修复方法 在上一篇文章OpenCV中initUndistortRectifyMap函数存在bu ...
- linux系统盘使用率达到100%的问题查找和解决方法
linux系统盘使用率达到100%的问题查找和解决方法 参考文章: (1)linux系统盘使用率达到100%的问题查找和解决方法 (2)https://www.cnblogs.com/free-lon ...
- [记录]mscorlib recursive resource lookup bug解决方法
[记录]mscorlib recursive resource lookup bug解决方法 参考文章: (1)[记录]mscorlib recursive resource lookup bug解决 ...
- 【Android 逆向】x86 汇编 ( 使用 IDA 解析 x86 架构的动态库文件 | 使用 IDA 打开动态库文件 | IDA 中查找指定的方法 )
文章目录 一.使用 IDA 打开动态库文件 二.IDA 中查找指定的方法 一.使用 IDA 打开动态库文件 分析 Android SDK 中的 x86 架构的动态库 , 动态库位置 : D:\001_ ...
- 003---属性查找和绑定方法
属性查找与绑定方法 属性查找 类有两种属性:数据属性和函数属性 class LuffyStudent:school = 'Luffy'def __init__(self, name, sex, age ...
最新文章
- ESI世界大学排名:371所内地高校上榜!
- Rethinking the inception architecture for computer vision的 paper 相关知识
- 十年磨剑 中国光伏产业强势崛起
- AB1601定时器1注意事项
- vc中调用其他应用程序的方法(函数) winexec,shellexecute ,createprocess
- php订单系统 帝国cms,帝国CMS商城系统在线支付后,订单邮件提醒
- Android 支付宝登录
- Python format 函数- Python零基础入门教程
- 理论基础 —— 索引 —— B 树、B+ 树与 B* 树
- Kubernetes-Pod(三)
- shop--7.店铺编辑和列表--店铺列表展示 前端
- bmp280c语言程序,51单片机读取BMP280 180 280气压值1602显示程序
- Navicat for MySQL触发器更新和插入操作
- 英雄无敌Ⅲ之游戏修改器DIY
- 10. logback详解,Flink流处理案例及Hive和Hbase的整合
- 【IoT】产品设计:结构设计之什么是堆叠设计(一)
- 华钜同创:亚马逊中常见的广告类型及其专业名词解释
- 常用数字与字母的正则表达式(转载)
- MySQL的JDBC 中的PreparedStatement是一把双刃剑,需要均衡利弊后再使用
- 弘辽科技:2022年拼多多活动时间表是什么?促销方式有哪些?
热门文章
- Windows XP的定时关机命令
- 出口美国的电动自行车UL2849测试和GCC检测标准
- 8700k超频测试软件,超频及功耗温度测试_Intel 酷睿i7 8700K_CPUCPU评测-中关村在线...
- CSS3+JavaScript效果:胶卷式放映
- Android桌面小插件——Widget
- docker报错exited(137)
- item在python中什么意思_Python中使用item()方法遍历字典的例子
- vue less 换肤
- 2020-03-02
- jetbrains DataGrip 1.0注册破解方法