• 应用开发DEBUG应用排错概述


    本文属于原创,转载请加上链接以及博主名字

     

    请尊重别人的劳动成果

     

    在云端的开发工程师们,在工作中有没有觉得Debug,有时会占去一天工作时间的大部分。既然一天都在干这个,觉着就要研究分析下,

    Debug是不是有可以总结分享的东西。

    一般查bug时步骤如下,

    第一步:定位问题,定位问题首先需要收集便是数据。一般有:业务运行日志,Gc日志(如果有开启的话),异常日志,线程Dump,堆Dump和一些会影响到业务运行的数据。

    第二步:有了数据,于是我们就开始分析了。

    第三步:通过分析,一般能定位问题,问题找到了,剩下的修改,出解决方案了。

    一般Debug就这三步,这三步中又有什么技巧,怎样能提高我们的Debug效率。

    第一步中的数据,是一个前人打井,后人喝水的工作,平时在Code时就要留心,按照一定的规范把日志记全了。提起注意的是,我们的业务一般Running在一个大环境中,所以大环境有什么

    风吹草动,最好也听下,有时能为你排查问题省下不少时间。

    第二步:有了数据,就是分析问题了,分析问题,对于不同的数据都有不同的工具,来提高你的分析速度。这部分靠平时不断的搜集和积累。当然对于基础组件了解也是必要的。

    第三步:暂时没有想到什么。

    下面分享下,我一般工作中Debug用到的工具吧。

    网络封包分析软件:

                 Wireshark:功能强大的分析抓包分析工具,比较占资源。

    smsniff:比较轻量工具,不占资源,以连接为单位,显示交互数据。

    Dump分析工具:

                Windows:

           Windbg:通过加载插件,能用来分析Windows环境下所有内存镜像。(Windows高级调试,net高级调试这两本书能帮助你熟练使用它)

    Linux:

    Java:

        JDK中提供的工具:

                     JPS:全称为JVM Process Status Tool ,显示指定系统内所有的HotSpot虚拟机进程。

     jstat:全称为JVM Statistics Monitoring Tool 用于显示HotSpot 虚拟机各方面的运行数据。

     jinfo:显示虚拟机的配置信息.

     jmap:打印出某个java进程(使用pid)内存内的,所有object的情况(如:产生那些对象,及其数量)

     jhat:用于分析heapdump文件,建立一个http/heml server,让用户可以在浏览器上查看分析结果。

     jstack:Stack Trace for java .显示虚拟机的thread 快照

     jvisualvm: GUI工具,可监控、性能评估、故障诊断主机上所有java进程的cpu,内存,线程使用情况.

    jprofile:在java程序性能调试方便表现优越,推荐使用

  • 相关阅读:
    一个很好用的linux下系统清理工具
    怎样将linux+qt在1S中内启动的幻灯片教程
    通过 ulimit 改善系统性能
    UBI文件系统
    利用BLCR加快Android的启动过程
    工作队列中的sleep导致控制台无法输入问题
    android system setup and building (3)
    物理地址和虚拟地址1 (MMU)
    对 makefile 中 eval 函数的学习体会
    location.href语句与火狐不兼容的问题
  • 原文地址:https://www.cnblogs.com/bjanzhuo/p/3575989.html
Copyright © 2020-2023  润新知