程序调试技巧
调试技巧有哪些?调试技巧终极大法就是不要调试,一次成功!^_^
目前在公司的工作,主要就是调代码,修bug。今天leader说一个专业名词:单步调试,我一脸懵逼,这样的工作我也做过啊,也是一步步看变量状态,只是做的不够专业罢了,其他的方法:
1 2 3 | 1 .如盯着代码看(code review) 2 .查看输出日志(最原始的大法就是system.out大法) 3 .使用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一下。
有时候在测试环境,没有真实的数据,不能走完全流程,这时就只能构造假数据,比如在页面上,在数据库中修改,模拟真实场景。要搞清楚你的程序测试需要哪些数据。
总之,调试是一种低效的方法,是没有办法的办法,要尽量保证自己代码逻辑正确,一次通过。
参考博客:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义