程序调试技巧

  这篇博文一看就知道是老手写出来的,能够读懂其中的味道,说明也不简单,https://blog.codingnow.com/2018/05/ineffective_debugger.html

  目前在公司的工作,主要就是修代码,调bug,所以在调试代码方面还是应该多留意的。今天leader说一个专业名词:单步调试,我一脸懵逼,这样的工作我也做过啊,也是一步步看变量状态,只是做的不够专业罢了,其他的方法如2盯着代码看(code review),3查看输出日志(最原始的大法就是system.out大法,4使用swagger,postman等。

  接下来就是要注意调试的环境问题。有的程序是一键部署到服务器上面的。如果我们的程序还调用了其他服务,则需要确保相关的配置文件正确。最方便的情况就是在本地调试了,这样能实时看日志。今天老大就给我示范了两个调bug的经典例子,一个是看log日志文件,在日志文件看到了抛出异常,再回看代码,我们的代码没有对这类异常进行捕捉,所以业务就出现异常。还有就是在本地通过单步调试发现我们的swagger输出没有问题,而是相关服务调用我的服务出错,这是从我们服务的服务输出推断的。

  其中在log调试时,向同事问了几个linux命令,挺实用的,比如tail -f file.out:会实时跟踪输出。sed -i '1,100d' file.out:删除文件的指定行,否则很多日志不知道怎么看。暴力删除文件:find / -name *.log | xargs rm -f

  然后就是修改代码的时候,要习惯使用idea中的交户界面操作,这样虽然不及命令行快捷方便,但是命令行输出得到的东西我们看起来也不方便。在查看文件的diff命令很直观,还有就是我们可以只提交某个文件的更改,定位相应的文件也很块。还有就是用户的每次提交都会使远程的文件版本向前,在多人协作时,如果你的版本落后于远程版本,就会push失败(这是经常出现的情况),所以要注意先pull一下。

原文地址:https://www.cnblogs.com/Robin008/p/10977128.html