Arthas官方文档:https://arthas.aliyun.com/doc/quick-start.html
Arthas是什么Arthas 是Alibaba开源的Java诊断工具,可以实现Java动态追踪,可以在运行中的Java代码内添加日志输出以达到不重启项目来打印日志的效果。
Arthas支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。
官方文档中的 *** 作是以linux环境为主的,本文主要介绍当开发人员开发环境为Windows时,如何顺利使用Arthas的功能,本篇只简单介绍如何启动Arthas以及简单的输出,对应官方文档中的“快速入门”部分。
使用Arthas 下载ArthasArthas下载地址
下载到本地后手动解压缩。
Arthas Git代码中自带了一个名为MathGame的简单java程序,每隔一秒生成一个随机数,再执行质因数分解,并打印出分解结果。
通过命令行进入MathGame路径下,编译MathGame.java,并运行demo。
通过命令行进入Arthas项目下的bin目录,执行as.sh脚本,进入Arthas页面。
输入进程编号1,回车,此时若为linux环境,则Arthas会attach到目标进程,但Windows不支持展示Arthas页面,需要我们手动telnet。
打开命令行,输入telnet 127.0.0.1 端口号(图中为3658),成功进入telnet界面。
现在就可以对当前进程进行查看等 *** 作了。
输入dashboard,按回车/enter,会展示当前进程的信息,按ctrl+c可以中断执行。
输入thread 1会打印线程ID 1的栈,通常是main函数的线程,输入thread 1|grep main来过滤main函数的信息。
通过jad命令反编译MathGame.class。
通过watch命令来查看MathGame#primeFactors函数的返回值:
博主本身也是初次接触Arthas,从简单的了解中,也感到Arthas是一个非常强力的开源java诊断工具,对java开发人员维护项目来说是一个强大的助力,此篇文章只是浅尝辄止,没有挖掘出深层次的使用方法,也欢迎各路朋友交流指正。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)