《Arthas系列一》搭建调试环境,千里之行始于足下

简介: 《Arthas系列一》最简单的调试环境

《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 即可下载到本地

351da35b01814b43a64558749cda1aac~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


2.2 解压压缩包,解压到当前文件夹就好。


2b9d5cd4d38f4ba883d7491b9809a7f5~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


2.3 导入idea 打开你那破解版的idea,


File->Open->选中你解压文件的地址(arthas-master)->OK->等待导入

ce57e3206cfe4c69b53317799ab07dfb~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg

导入代码之后,idea 会加载Maven中依赖的包,需要稍微等一会,不要着急。

205cfc0440214620b782a9b525001781~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg

3、调试环境 调试原理:想要调试代码,我们先要知道IDE的调试的最基本的原理就是程序运行的过程中使用的代码文件存在于当前工作环境中,然后断点之后,ide会记录,等到代码执行的过程中会在当前的ide中进行匹配,触发断点


3.1 下载 arthas-boot.jar 地址:arthas.aliyun.com/arthas-boot…

4f7ae8036cac418888e6b8de80cd3af8~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg

3.2 Debug启动MathGame

74ae20d7abe24fff82be0a6f8d96b0bf~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg

1a2ed766c4b34e118b25984bea45ada6~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg

3.4 启动调试客户端 启动命令行窗口,开始-> 输入cmd 回车即可


切换到arthas-boot.jar 所在的文件夹,输入命令显示下面的界面
复制代码


java -jar arthas-boot.jar


3.5 选中需要调试的进程,MathGame,输入前面的序号即可

444c13c400e94c0a8aa1f3393d7d48fe~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg

3.6 输入需要调试的命令 echo 将进入断点,恭喜你终于可以开心的调试代码了。

d691a52f354b4f66bfaf9f4c99206c70~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg

4、总结 调试环境的搭建是阅读源码的第一步,不过搭建好环境之后需要慢慢研读每一个命令的实现,每一个命令相关联的技术点,希望从实例中学习,关注我,一起学习Arthas


有疑问的可以留言,我们一起讨论,没有问题的也可以留言,我们交个朋友



目录
相关文章
|
3天前
|
缓存 网络安全 Android开发
|
3天前
|
Ubuntu Linux Go
搭建调试环境
搭建调试环境
41 0
|
6月前
|
NoSQL Java
如何对生产环境的JAVA应用进行远程调试
如何对生产环境的JAVA应用进行远程调试
61 0
|
9月前
|
Arthas 监控 Java
Arthas-java应用排障利器
Arthas-java应用排障利器
127 0
|
Arthas Java 测试技术
56-微服务技术栈(高级):在线检测工具Arthas(下载安装)
开发者对于生产问题故障的排查、定位,随着微服务的喷发,也不再像是以前那边依赖纯日志、gc日志进行问题排查与定位了,本节开始介绍一个生产环境使用的排错工具Arthas,帮助大家更高效、便捷地实现生产问题排错。
193 0
|
Arthas 存储 运维
60-微服务技术栈(高级):在线检测工具Arthas(实现CPU排查与代码热更新)
线上代码经常会出现CPU占用过高的情况,按以往经验我会使用top指令,进一步借助于jstack去查看具体信息从而进行问题排查,但基本上都逃不过需要重新发包的局面,即使是一个增量包,应用也需要短暂停启。后来运维大兄弟让我试一下Arthas,说是可以进行代码的热更新操作,正好来试一下。
302 0
|
Arthas Oracle Java
58-微服务技术栈(高级):在线检测工具Arthas(jvm相关指令)
开发者对于生产问题故障的排查、定位,随着微服务的喷发,也不再像是以前那边依赖纯日志、gc日志进行问题排查与定位了,本节开始介绍一个生产环境使用的排错工具Arthas,帮助大家更高效、便捷地实现生产问题排错。
307 0
|
Arthas 监控 Java
java线上项目排查,Arthas简单上手
java线上项目排查,Arthas简单上手
192 0
java线上项目排查,Arthas简单上手
|
前端开发 Java API
如何使用线上环境进行本地代码调试
如何使用线上环境进行本地代码调试
413 0
|
Arthas 运维 Java
Arthas使用指南(上)
Arthas 是Alibaba开源的Java诊断工具。安装在系统所在服务器。可以帮助开发人员或者运维人员查找问题,分析性能,bug追踪。
548 0