点石互动

导航

 

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

 

请尊重别人的劳动成果

 

在云端的开发工程师们,在工作中有没有觉得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程序性能调试方便表现优越,推荐使用

posted on 2013-02-17 13:58  点石互动  阅读(162)  评论(0编辑  收藏  举报