0
点赞
收藏
分享

微信扫一扫

简单使用 Arthas 分析线上异常


今天线上有个接口一直响应 500,但是具体异常却在日志中没有查看到异常信息。于是通过 Arthas 来查看(最终结论:使用 watch  命令看)。

首先 trace 一下异常方法:

简单使用 Arthas 分析线上异常_p2p

简单使用 Arthas 分析线上异常_p2p_02

  # 号后面就是行号,要注意这里 trace 是分层了的,我这里第一层是 XXXController,这里的 #45、#48 等对应的就是在 XXXController 中的行数,然后直到 XXXController 的第 59 行,这个 listXXX 方法内抛出了一个 NPE 异常。

但是 Arthas 中的 trace 命令只能展示一层,可以通过"trace -E com.test.ClassA|org.test.ClassB method1|method2|method3" 的方式查看多个函数,但其实还是不太明显:

简单使用 Arthas 分析线上异常_linq_03

换成使用 watch 命令:

[arthas@1]$ watch com.xxx.web.controller.XXXXController xxxMethod {params,returnObj,throwExp} -e  -x 6 

简单使用 Arthas 分析线上异常_d3_04

简单使用 Arthas 分析线上异常_p2p_05

 这个效果就不错,可以看到行数。

 

举报

相关推荐

0 条评论