半点优化网 http://www.bdxc.net/
当前位置首页 > 网站技术问题> 正文

你初学编程的时候是怎么提高自己的Debug能力的?

2022-08-16 01:45:51 暂无评论 233 网站技术问题 初学   能力   编程

作为一名IT行业的从业人员,也是一名老程序员。现在主要在从事产品研发及项目管理工作,所以我来探讨一下这个问题。

什么是BugBug一词的英文翻译为“臭虫子”或“虫子”。但是现在,我们认为是在电脑系统或者程序中,隐藏着一些未被发现的缺陷或漏洞问题,称之为Bug。

什么是DebugDebug是排除故障、排除问题的意思。

怎么提高自己的Debug能力的?首先,良好的编码习惯和逻辑思维能力,对Bug有预见判断的能力。

作为程序员,应该有一个良好的编程习惯,不仅需要有良好的编码格式、命名规范,更为需要的是对于业务逻辑,实现时有良好的架构结构、数据结构、业务结构、程序安全等等方面的考虑。

其次,问题错误定位能力。

对于已发生的问题或bug进行分析、日志分析、业务逻辑分析、数据分析等等,对问题或bug进行初步定位。问题初步定位之后,在相关的程序节点进行输出或日志处理,不断的对问题进行跟踪和处理。

最后,对发生的Bug有感知能力。

当一个Bug出现的时候,优秀的程序员能根据Bug发生的前提和Bug发生的时间点、程序中的位置,很好的感知到Bug可能发生在哪一个函数或者哪几个函数中。

这些方法做着做着就习惯了或“不断能成功解决出现的问题或bug”,谈不上坚持,最终成了喜欢的自己。

Debug的十八重境界:

第一重:Debug应用程序,需要源代码,依赖集成开发环境(IDE)下断点来调试。

第二重:Debug应用程序,需要源代码,只需要调试器下断点,即可调试。

第三重:Debug应用程序,需要源代码,不需要调试器,打Trace来调试。

第四重:Debug应用程序,只用肉眼浏览源代码,便可定位Bug、并做修复。

第五重:Debug应用程序,不需要源代码,但是需要崩溃转储文件,依赖调试器来调试。

第六重:Debug应用程序,不需要源代码,不需要转储文件,不需要调试器,只通过问题症状,便可定位Bug。

第七重:在第六重的基础上,开发热补丁。

第八重:Debug内核态程序,需要源代码,打Trace来调试。

第九重:Debug内核态程序,需要源代码,使用调试器来调试。

第十重:Debug内核态程序,用肉眼浏览源代码,便可定位Bug、并做修复。

第十一重:Debug内核态程序,不需要源代码,但是需要崩溃转储文件,依赖调试器来调试。

第十二重:Debug内核态程序,不需要源代码,不需要转储文件,不需要调试器,只通过问题症状,便可定位Bug。

第十三重:Debug BIOS/Bootload程序,需要源代码,利用超级终端来打Trace调试。

第十四重:Debug BIOS/Bootload程序,需要源代码,使用JTAG+超级终端或者MultiICE来调试。

第十五重:Debug BIOS/Bootload程序,需要源代码,只用肉眼浏览源代码,便可定位Bug、并做修复。

第十六重:Debug BIOS/Bootload程序,不需要源代码,使用JTAG+超级终端或者MultiICE来调试。

第十七重:使用逆向分析工具,进行逆向工程,定位Bug,并作补丁修复

第十八重:自行开发逆向分析工具,定位Bug,并作补丁修复

自行对照,看看达到第几重境界。

此外在前七重,根据鄙视链,还分成好几级:

COM+/DCOM组件调试 > COM组件调试 > EJB调试 > 云原生调试 > DLL/.a调试 > 桌面可执行程序调试 > Web调试 ……

猜你喜欢