欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 使用Arthas排查线上报错

使用Arthas排查线上报错

2025/9/30 18:48:08 来源:https://blog.csdn.net/Diyu0904/article/details/144189410  浏览:    关键词:使用Arthas排查线上报错

下载Arthas

# 下载:
wget https://arthas.aliyun.com/arthas-boot.jar
# 启动:
java -jar arthas-boot.jar

启动

启动完Arthas后他会自动检测宿主机正在运行的Java程序,输入数字可连接对应程序

注意:打成镜像部署在docker中的Java程序通过jar的形式直接启动他检测不到,可以通过docker将他打成镜像到docker启动(经过测试,用镜像启动还需要把他和运行程序建立在同一个网络下才可以检测到,因为docker具有隔离性,每一个容器都是一个命名空间,这边暂未研究出来)

所以需要将程序以jar包的形式启动才可以使用Arthas检测

排查报错

找到报错方法,使用Arthas来监听入参,出参,以及异常信息

通过报错日志来找到对应的类以及方法

 

watch ${类路径} ${方法名} "{params, returnObj, throwExp}" -x 5

 watch 代表监听方法

params 代表监听入参

returnObj 代表监听出参

throwExp 代表监听异常

-x 5 代表5层深度

监听完后再次请求

查看到入参

 

这种是正常调用

 在线上没有日志的情况下,可以单独更新单独类(例如添加日志)

在本地修改完代码后,编译为class文件,上传到服务器

 retransform  /${路径}/${类名}.class

 retransform 动态编译类

查看反编译后的类(是否更新)

retransform --deleteAll

删除所有编译过的类 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词