《Arthas系列一》最简单的调试环境
准备接下来写一下Arthas 的技术,一方面分析源码,一方面将Arthas中涉及的技术点进行深入学习下,这个系列对刚入行的同学可能有点费劲,如果你能理解其中的技术,我想你一定很不错。对于有一定经验的同学,我希望能形成系统,帮助大家理解原理。
1、Arthas是啥? 官方文档地址:github.com/alibaba/art…
我想大部分人应该知道是什么,但是我还是打算简单的介绍下。简而言之就是解决线上问题的工具。官方的介绍如下:
Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。
当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:
这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
是否有一个全局视角来查看系统的运行状况?
有什么办法可以监控到JVM的实时运行状态?
怎么快速定位应用的热点,生成火焰图?
Arthas支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。
2、导入代码 Arthas是开源的项目,github地址:github.com/alibaba/art…
不知道有多大比例的没用过Github ,如果你用过GitHub,我想你一定知道怎么把代码拉到本地;如果你没用过GitHub 也不用担心,我们只是要学习Arthas,不是要参与项目(即使参与也要先了解项目),介绍下怎么导入代码
2.1 下载代码: 如果你使用SVN ,可以使用svn checkOut ,地址:github.com/alibaba/art…
如果你本地什么svn,git 都没装,不用慌,我们直接下载代码安装包,下拉Code ,选择Download ZIP 即可下载到本地
2.2 解压压缩包,解压到当前文件夹就好。
2.3 导入idea 打开你那破解版的idea,
File->Open->选中你解压文件的地址(arthas-master)->OK->等待导入
导入代码之后,idea 会加载Maven中依赖的包,需要稍微等一会,不要着急。
3、调试环境 调试原理:想要调试代码,我们先要知道IDE的调试的最基本的原理就是程序运行的过程中使用的代码文件存在于当前工作环境中,然后断点之后,ide会记录,等到代码执行的过程中会在当前的ide中进行匹配,触发断点
3.1 下载 arthas-boot.jar 地址:arthas.aliyun.com/arthas-boot…
3.2 Debug启动MathGame
3.4 启动调试客户端 启动命令行窗口,开始-> 输入cmd 回车即可
切换到arthas-boot.jar 所在的文件夹,输入命令显示下面的界面 复制代码
java -jar arthas-boot.jar
3.5 选中需要调试的进程,MathGame,输入前面的序号即可
3.6 输入需要调试的命令 echo 将进入断点,恭喜你终于可以开心的调试代码了。
4、总结 调试环境的搭建是阅读源码的第一步,不过搭建好环境之后需要慢慢研读每一个命令的实现,每一个命令相关联的技术点,希望从实例中学习,关注我,一起学习Arthas
有疑问的可以留言,我们一起讨论,没有问题的也可以留言,我们交个朋友