怎么提高自己的Debug能力

提高自己的Debug能力有以下几个步骤:1、调整好心态;2、想办法让bug复现;3、仔细分析现象;4、查看日志文件;5、网络上查找解决方法;6、注释法等。首先最重要的是调整好心态,千万不要有太重的心理负担,平常心对待即可。

怎么提高自己的Debug能力-Worktile社区

一、调整好心态

人人都会出bug,bug是无法避免的,所以你千万不要觉得,我出现了bug,就说明我比较菜。千万不要有太重的心理负担,平常心对待即可。

二、想办法让bug复现

如果自己复现不了的话,可以找测试人员帮忙复现。如果bug能够稳定地复现,那么几乎可以断定,这个bug是肯定可以解决的。

三、仔细分析现象

对照需求文档,看看程序正确的运行应该是怎样的状况,再对比bug出现的现象,我们一般可以大致定位出来是哪个部分出现了问题,再对那个部分进行深入分析。

四、查看日志文件

日志文件是非常重要的一个文件,它可以记录程序在进行过程中输出的各种结果,同时也可以记录各种各样的报错信息。所以你分析报错信息,再结合报错点上面及下面一些正常的log,一般也可以定位到对应的代码位置,甚至直接就可以解决bug了。

所以这就要求我们平时在写代码的时候,一定要多留个心眼,把可能出错的地方多写一些log,特别是if…else,try…exception,这类程序异常运行的地方多加一些log。

虽然写这些log的时候可能会多花点时间,但在代码出现bug的时候可以给你省下很多调试的时间的。

五、网络上查找解决方法

其实很多bug也有很多其他程序员碰到过,所以如果你实在分析不出原因的话,直接使用搜索引擎去搜索。这里比较推荐的是google,stackoverflow,bing,实在找不到的话再用百度。

而且,搜索的时候,尽量用英文,这样搜出来的结果会更多,而且不少会是非常详细的解答,非常有助于bug的解决。

六、注释法

如果你实在没有思路,那可以采用注释法来排查。所谓的注释法,就是你把你写的类、函数、模块,等等你认为有可能出现这个bug的部分,一个个依次注释掉。

每注释一部分,编译运行,看看bug有没复现,有复现的话继续再注释其它部分,直到bug不再出现。这样就可以确定bug出现在刚刚注释的代码里,再慢慢把注释的代码打开,就慢慢缩小了范围,然后就能排查出问题了。

七、断点调试

这应该是很常见的一种调试方法了。你可以在代码可能出错的地点打上断点,然后再运行代码,看看程序会在哪一行出错。这种方法简单实用,效率也非常高。

八、增加日志

在代码里可能出错的地方,人为地再增加几个log,或者把一些对应的变量的值用log打出来。然后通过已有的log及新增的这些log,就可以排查出来问题点了。

这种方法虽然说不是很高效,但用这种方法的话一般会先对代码进行分析,然后再打相应的log,可以锻炼在大脑里直接运行代码的能力,久而久之也会很大提升代码水平,后面调试的速度也会越来越快。

延伸阅读

什么是debug

DEBUG是计算机排除故障的意思。马克2号(Harvard Mark II)编制程序的格蕾丝·霍珀(Grace Hopper)是一位美国海军准将及计算机科学家,同时也是世界最早的一批程序设计师之一。有一天,她在调试设备时出现故障,拆开继电器后,发现有只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。于是,霍珀诙谐地把程序故障统称为“臭虫(BUG)”,把排除程序故障叫DEBUG,而这奇怪的“称呼”,竟成为后来计算机领域的专业行话。如DOS系统中的调试程序,程序名称就叫DEBUG。DEBUG在windows系统中也是极其重要的调试操作。

文章标题:怎么提高自己的Debug能力,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37453

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年2月8日 下午2:35
下一篇 2023年2月8日 下午3:27

相关推荐

  • 元数据引擎是什么

    元数据引擎就是支持存储元数据的数据库。通常来说,数据被存储在以对象存储为主的云存储中,而数据所对应的元数据则被存储在独立的数据库中,我们把这些支持存储元数据的数据库称为“元数据存储引擎”。 通常来说,数据被存储在以对象存储为主的云存储中,而数据所对应的元数据则被存储在独立的数据库中,我们把这些支持存…

    2022年10月17日
    22700
  • 为什么Object.entries和Array.prototype.entries的返回值类型不同

    原因主要是:由于 Object 和 Array 这两个数据类型的属性和方法的不同,它们的返回值类型却不同。Object.entries 返回的是一个由属性名和属性值组成的字符串数组,而 Array.prototype.entries 返回的是一个由索引和值组成的数字数组。 Object.entrie…

    2023年2月28日
    2200
  • project哪个版本好用

    选择哪个版本的Project取决于用户的需求和预算。Project包含以下版本:一、Project Standard;二、Project Professional;三、Project Online;四、Project Server。Project Standard是Project软件的基本版本,适用…

    2023年3月31日
    3200
  • autowired和resource注解的区别

    autowired和resource注解的区别:1、来源不同;2、注入规则不同;3、依赖查找的顺序不同;4、支持的参数不同;5、依赖注入的用法支持不同;6、编译器 IDEA 的提示不同;7、使用位置不同。来源不同是指,Autowired来自 Spring 框架,而 @Resource 来自于(Jav…

    2023年3月17日
    16800
  • 线程控制块中包含了哪些内容

    线程控制块中包含的内容有:1、线程控制块ID;2、线程运行计数器;3、线程堆栈指针;4、堆栈起始地址;5、堆栈结束地址;6、堆栈大小;7、当前时间片(剩余运行时间);8、新的时间片等。线程控制块ID又称tx_thread_id。 一、线程控制块中包含的内容 二、引入线程的好处 延伸阅读 线程和进程的…

    2023年1月5日
    15100
  • jsp的指令有哪些

    jsp的指令有:1、forward指令;2、include指令;3、useBean、setProperty和getProperty指令;4、plugin指令。orward 指令用于将页面响应控制转发给另外的页面。既可以转发给静态的 HTML页面,也可以转发到动态的 JSP 页面,或者转发到容器中的 …

    2023年1月11日
    4000
  • 大数据和普通的数据分析有什么区别的吗

    区别是:1、数据存储不同;2、数据挖掘的方式不同;3、专业的分析工具;4、对从业者要求也不同;5、发展前景不同。传统的数据分析数据量较小,不需要过多考虑数据的存储问题。而大数据所涉及到的数据具有海量、多样性、高速性以及易变性等特点。 1、数据存储不同 传统的数据分析数据量较小,相对更加容易处理。不需…

    2023年2月21日
    3900
  • 协同办公软件有什么用

    协同办公软件的作用是:一、可以更好的管理团队;二、减少沟通成本;三、提升企业凝聚力;四、减低不必要的损失。在使用协同办公工具的时候,每个人都能够明确责任、遵守规范,可以对工作的流程进行跟踪,管理者可以随时了解工作进度。 一、可以更好的管理团队 在使用协同办公工具的时候,每个人都能够明确责任、遵守规范…

    2023年4月29日
    800
  • 需求评审和设计评审有什么不同

    需求评审和设计评审的区别:1、适用范围不同;2、评审重点不同;3、评审流程不同。需求评审是从用户的角度出发,一切围绕用户进行评审。理解了软件产品的业务需求和用户需求后,才能进一步进行设计,从而对软件实现的功能进行设计评审,需求评审在前,设计评审在后。 需求评审和设计评审的区别 需求评审是“从用户的角…

    2022年11月16日
    48800
  • 为什么公司企业有okr绩效管理

    公司企业有okr绩效管理的原因有:一、OKR是管理发展的必然趋势,是最前沿的管理技术;二、VUCA时代市场复杂多变,OKR是组织应对的最佳模式;三、员工结构变化导致需求调整,OKR是管理输出的最佳方法;四、“有过程才有结果”,持续绩效管理是组织的标配。 一、OKR是管理发展的必然趋势,是最前沿的管理…

    2023年4月27日
    500

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部