你有哪些解决bug的技巧?

常见的解决bug的方法有: 1)调试; 2)排除法; 3)打印。 你还有哪些解决bug的技巧,能够快速定位并解决问题?
关注者
974
被浏览
81,511

62 个回答

第一步,最好是加一个能重现问题的单元测试,然后才想怎样修正。这样也确保同一问题再将来能被自动发现。

诶,被邀请了是不是应该先答一句:谢邀思密达。

咳咳,这部分装完了,尽量撤点干货吧。

1.不聊语言的话,从debug方法来看。

2.具体到语言,聊聊debug这些东西。

-------------------------------------------------------

不聊语言的话,从debug方法来看:

1.printf大法好。

2.断点调试也不错的。

从bug粗线的问题原因来看:

1.编译层的问题。

其实就是语法,语义的问题。

比如类型转换搞错了,比如你把一堆非全数字的String值转成int,分分钟跪掉。

其实这个是最简单的bug,这里最多的就常见的就是空指针了。

2.逻辑层的问题。

逻辑层问题就是你代码语法语义都对,但因为你个人逻辑错了或者对代码理解不清,导致的错误,但是这里问题就多了,而且还容易各种debug崩溃。

比如这种的。

你会发现尼玛怎么flag分分钟都是true。那你少写了一个else能不出bug么?

还比如这种的。

你会发现尼玛怎么数据就是对不上!那你没整明白in.readline()的用法能不出bug么?

还比如这种的。

你从PHP服务器上抓时间戳数据。在Android上直接转换。

你会发现尼玛数据就是不对,那PHP时间戳转化到java需要补全后三位这事你不知道能不出bug么?

下面具体聊聊debug这些东西。楼主分类提到了前端开发跟Android开发,那就聊聊这俩吧。

--------------------------------------------------------

1.善用各种工具。

比如Android开发的printf就是LogCat。最开心看到红色了好么!因为出来这个基本IDE已经帮你定位好了。

前端开发就依浏览器不同效果不一了,其实都是用开发者工具调试。我比较喜欢用chrome。分分钟找错误。

-------

一年前的答案了。最近准备更新下。先mark下