大数据&云计算|线上项目出BUG没法调试?推荐这款阿里开源的诊断神器( 二 )


本文插图

查看完日志以后记得要把日志级别再调回INFO级别 。
logger -c 21b8d17c --name ROOT --level info
sc
查看JVM已加载的类信息 , Search-Class的简写 , 搜索出所有已经加载到 JVM 中的类信息 。
搜索com.macro.mall包下所有的类;
sc com.macro.mall.*
大数据&云计算|线上项目出BUG没法调试?推荐这款阿里开源的诊断神器
本文插图

打印类的详细信息 , 加入-d参数并指定全限定类名;
sc -d com.macro.mall.tiny.common.api.CommonResult
大数据&云计算|线上项目出BUG没法调试?推荐这款阿里开源的诊断神器
本文插图

打印出类的Field信息 , 使用-f参数 。
sc -d -f com.macro.mall.tiny.common.api.CommonResult
大数据&云计算|线上项目出BUG没法调试?推荐这款阿里开源的诊断神器
本文插图

sm
查看已加载类的方法信息 , Search-Method的简写 , 搜索出所有已经加载的类的方法信息 。

查看类中的所有方法;
sm com.macro.mall.tiny.common.api.CommonResult
大数据&云计算|线上项目出BUG没法调试?推荐这款阿里开源的诊断神器
本文插图

查看指定方法信息 , 使用-d参数并指定方法名称;
sm -d com.macro.mall.tiny.common.api.CommonResult getCode
大数据&云计算|线上项目出BUG没法调试?推荐这款阿里开源的诊断神器
本文插图

jad
反编译已加载类的源码 , 觉得线上代码和预期不一致 , 可以反编译看看 。
查看启动类的相关信息 , 默认会带有ClassLoader信息;
jad com.macro.mall.tiny.MallTinyApplication
大数据&云计算|线上项目出BUG没法调试?推荐这款阿里开源的诊断神器
本文插图

使用--source-only参数可以只打印类信息 。
jad --source-only com.macro.mall.tiny.MallTinyApplication
大数据&云计算|线上项目出BUG没法调试?推荐这款阿里开源的诊断神器
本文插图

mc
内存编译器 , Memory Compiler的缩写 , 编译.java文件生成.class 。
redefine
加载外部的.class文件 , 覆盖掉 JVM中已经加载的类 。
monitor
实时监控方法执行信息 , 可以查看方法执行成功次时、失败次数、平均耗时等信息 。
monitor -c 5 com.macro.mall.tiny.controller.PmsBrandController listBrand
watch
方法执行数据观测 , 可以观察方法执行过程中的参数和返回值 。
使用如下命令观察方法执行参数和返回值 , -x表示结果属性遍历深度 。
watch com.macro.mall.tiny.service.impl.PmsBrandServiceImpl listBrand "{params,returnObj}" -x 2
大数据&云计算|线上项目出BUG没法调试?推荐这款阿里开源的诊断神器
本文插图


推荐阅读