跳转到内容

调试

除了使用浏览器的调试工具来完成开发中的调试外,WinJS 还推荐以下调试方式来协助项目的调试。

调试 dev 产物

如果你需要在 dev 阶段调试项目的构建产物,以 win.js 举例。先将原来的 win.js 下载到当前项目根目录下。根据调试需要进行编辑后,刷新浏览器,项目使用的 win.js 就替换成了根目录下的 win.js 文件。调试完毕需要恢复就直接删除根目录的 win.js 即可。

举例:

bash
# 下载当前项目的 win.js
$ curl http://127.0.0.1:8000/win.js -O

# 增加想调试的内容,举例增加 "debug!!!" 弹窗
$ echo -e  '\n;alert("debug!!!");\n' >> win.js
# 打开浏览器就能看到 alert 弹窗

# 退出调试,恢复到正常状态
$ rm win.js

以此类推即可调试其他的 JavaScript 文件。

bug 调试方法

在我们的开发中,由于对底层的不理解或者兼容性的问题,很有可能会出现白屏或者 Out Of Memory 的问题,也有一些问题没有任何可以 debug 着手的方式。这时候就要用到一些 debug 的方案。

二分法定位

二分法是 debug 中最常用也是最好用的方式,非常适用于我的代码昨天还是好的和各类 Out Of Memory 报错。我们可以程序逻辑一点点注释掉,不断地进行排错,完全能把问题可能出现的范围缩小,然后找出罪魁祸首。再用常规手段调试。

node 中 Out Of Memory 最常用的方式就是删除一半依赖,然后进行重试来不断缩小范围,直到找个问题所在。二分调试大法每次遇到棘手的 bug,基本上都能解决,程序员必备技能,无关语言。

小黄鸭法

又称为小黄鸭调试法

处理 bug 的过程,最难的不是怎么解决问题,而是如何定位代码的 bug,如果实在是一筹莫展,尤其是算法类的问题。我们可以通过小黄鸭法来进行 debug。我们可以找任何物体也可以是同事讲一遍或者讨论一遍,当然上网发帖也是好方式。

重写一遍

这个方法成本最高,适用于可以乱七八糟的代码,尤其是陈年代码,如果实在搞不懂修不了 bug,可以加好测试用例重新写一遍。毕竟很多的 bug 其实都是错别字。

基于 MIT 许可发布