arthas原理系列文章:
Arthas 启动入口
我们先从启动脚本as.sh看起,在这个脚本中首先会去列 Java 程序的 PID,用户选择之后再attach到目标 JVM 上,相关的代码是:
"${java_command[@]}" \
${ARTHAS_OPTS} ${JVM_OPTS} \
-jar "${arthas_lib_dir}/arthas-core.jar" \
-pid ${TARGET_PID} \
-target-ip ${TARGET_IP} \
-telnet-port ${TELNET_PORT} \
-http-port ${HTTP_PORT} \
-session-timeout ${SESSION_TIMEOUT} \
"${tempArgs[@]}" \
-core "${arthas_lib_dir}/arthas-core.jar" \
-agent "${arthas_lib_dir}/arthas-agent.jar"
在这里我们可以看到 arths 的入口是arthas-core.jar我们在项目工程core这个目录下果然找到com.taobao.arthas.core.Arthas#main这个入口函数,果然,程序兜兜转转会调用到attachAgent,而这个方法,和我

本文是Arthas原理系列的第二篇,主要介绍Arthas的启动入口及其整体架构。从启动脚本开始,探讨了arthas如何利用JVM的attach机制找到入口并挂载agent。接着,文章分析了Arthas的三个核心领域:服务器的抽象、命令的抽象和代码插装领域,阐述了其设计思想和功能特点。
最低0.47元/天 解锁文章
934

被折叠的 条评论
为什么被折叠?



