关于问题你初学编程的时候是怎么提高自己的 Debug 能力的?一共有 2 位热心网友为你解答:
【1】、来自网友【程序员—成长之路】的最佳回答:
作为一名 IT 行业的从业人员,也是一名老程序员。现在主要在从事产品研发及项目管理工作,所以我来探讨一下这个问题。
什么是 Bug
Bug 一词的英文翻译为“臭虫子”或“虫子”。但是现在,我们认为是在电脑系统或者程序中,隐藏着一些未被发现的缺陷或漏洞问题,称之为 Bug。
什么是 Debug
Debug 是排除故障、排除问题的意思。
怎么提高自己的 Debug 能力的?
首先,良好的编码习惯和逻辑思维能力,对 Bug 有预见判断的能力。
作为程序员,应该有一个良好的编程习惯,不仅需要有良好的编码格式、命名规范,更为需要的是对于业务逻辑,实现时有良好的架构结构、数据结构、业务结构、程序安全等等方面的考虑。
其次,问题错误定位能力。
对于已发生的问题或 bug 进行分析、日志分析、业务逻辑分析、数据分析等等,对问题或 bug 进行初步定位。问题初步定位之后,在相关的程序节点进行输出或日志处理,不断的对问题进行跟踪和处理。
最后,对发生的 Bug 有感知能力。
当一个 Bug 出现的时候,优秀的程序员能根据 Bug 发生的前提和 Bug 发生的时间点、程序中的位置,很好的感知到 Bug 可能发生在哪一个函数或者哪几个函数中。
这些方法做着做着就习惯了或“不断能成功解决出现的问题或 bug”,谈不上坚持,最终成了喜欢的自己。
【2】、来自网友【海漂活化石】的最佳回答:
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 调试 ……