update doc

gh-pages
hengyunabc 4 years ago
parent 6e8b832093
commit 5ee0584465

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>&lt;no title&gt; &mdash; Arthas 3.4.5 文档</title>
<title>&lt;no title&gt; &mdash; Arthas 3.4.6 文档</title>
@ -72,7 +72,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -101,7 +101,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>

@ -8,6 +8,7 @@
* [cat](cat.md)——打印文件内容和linux里的cat命令类似
* [echo](echo.md)--打印参数和linux里的echo命令类似
* [grep](grep.md)——匹配查找和linux里的grep命令类似
* [base64](base64.md)——base64编码转换和linux里的base64命令类似
* [tee](tee.md)——复制标准输入到标准输出和指定的文件和linux里的tee命令类似
* [pwd](pwd.md)——返回当前的工作目录和linux命令类似
* cls——清空当前屏幕区域
@ -42,6 +43,7 @@
* [sm](sm.md)——查看已加载类的方法信息
* [jad](jad.md)——反编译指定已加载类的源码
* [mc](mc.md)——内存编译器,内存编译`.java`文件为`.class`文件
* [retransform](retransform.md)——加载外部的`.class`文件retransform到JVM里
* [redefine](redefine.md)——加载外部的`.class`文件redefine到JVM里
* [dump](dump.md)——dump 已加载类的 byte code 到特定目录
* [classloader](classloader.md)——查看classloader的继承树urls类加载信息使用classloader去getResource

@ -22,6 +22,7 @@
* [jad](jad.md)
* [classloader](classloader.md)
* [mc](mc.md)
* [retransform](retransform.md)
* [redefine](redefine.md)
* [monitor](monitor.md)
@ -35,6 +36,7 @@
* [cat](cat.md)
* [echo](echo.md)
* [grep](grep.md)
* [base64](base64.md)
* [tee](tee.md)
* [pwd](pwd.md)
* [options](options.md)

@ -9,6 +9,16 @@
[https://github.com/alibaba/arthas/issues/44](https://github.com/alibaba/arthas/issues/44)
##### trace/watch等命令能否增强jdk里的类
默认情况下会过滤掉`java.`开头的类,但可以通过参数开启。
```bash
options unsafe true
```
更多参考 [options](options.md)
##### 怎么以`json`格式查看结果
```bash
@ -25,4 +35,31 @@ options json-format true
##### 能不能查看内存里某个变量的值
不能。但可以用一些技巧,用`tt`命令拦截到对象,或者从静态函数里取到对象。
不能。但可以用一些技巧,用`tt`命令拦截到对象,或者从静态函数里取到对象。
##### 方法同名过滤
同名方法过滤可以通过匹配表达式,可以使用[表达式核心变量](advice-class.md)中所有变量作为已知条件,可以通过判断参数个数`params.length ==1`, 参数类型`params[0] instanceof java.lang.Integer`、返回值类型 `returnObj instanceof java.util.List` 等等一种或者多种组合进行过滤。
可以使用 `-v` 查看观察匹配表达式的执行结果 [https://github.com/alibaba/arthas/issues/1348](https://github.com/alibaba/arthas/issues/1348)
例子[arthas-demo](quick-start.md)
```bash
watch demo.MathGame primeFactors traceE '{params,returnObj,throwExp}' -v -n 5 -x 3 'params.length >0 && returnObj instanceof java.util.List'
```
##### 怎么watch、trace 构造函数
```bash
watch demo.MathGame <init> '{params,returnObj,throwExp}' -v -n 5 -x 3 '1==1'
```
##### java.lang.ClassFormatError: null、skywalking arthas 兼容使用
当出现这个错误日志`java.lang.ClassFormatError: null`,通常情况下都是被其他字节码工具修改过与arthas修改字节码不兼容。
比如: 使用 skywalking V8.1.0 以下版本 [无法trace、watch 被skywalking agent 增强过的类](https://github.com/alibaba/arthas/issues/1141), V8.1.0 以上版本可以兼容使用,更多参考skywalking配置 [skywalking compatible with other javaagent bytecode processing](https://github.com/apache/skywalking/blob/v8.1.0/docs/en/FAQ/Compatible-with-other-javaagent-bytecode-processing.md)。

@ -31,7 +31,8 @@ Contents
* [招聘!](https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ)
* [技术征文!](https://developer.aliyun.com/article/751641)
* [English Docs](https://arthas.aliyun.com/doc/en/)
* [在线教程(推荐)](https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn)
* [在线教程(国内)](https://start.aliyun.com/handson-lab/#!category=arthas)
* [在线教程(国外)](https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn)
* [安装](install-detail.md)
* [下载](download.md)
* [快速入门](quick-start.md)

@ -57,7 +57,7 @@ CharSequence {
#### 反编译时只显示源代码
默认情况下,反编译结果里会带有`ClassLoader`信息,通过`--source-only`选项,可以只打印源代码。方便和[mc](mc.md)/[redefine](redefine.md)命令结合使用。
默认情况下,反编译结果里会带有`ClassLoader`信息,通过`--source-only`选项,可以只打印源代码。方便和[mc](mc.md)/[retransform](retransform.md)命令结合使用。
```
$ jad --source-only demo.MathGame

@ -30,6 +30,6 @@ Affect(row-cnt:1) cost in 346 ms
mc -d /tmp/output /tmp/ClassA.java /tmp/ClassB.java
```
编译生成`.class`文件之后,可以结合[redefine](redefine.md)命令实现热更新代码。
编译生成`.class`文件之后,可以结合[retransform](retransform.md)命令实现热更新代码。
> 注意mc命令有可能失败。如果编译失败可以在本地编译好`.class`文件,再上传到服务器。具体参考[redefine](redefine.md)命令说明。
> 注意mc命令有可能失败。如果编译失败可以在本地编译好`.class`文件,再上传到服务器。具体参考[retransform](retransform.md)命令说明。

@ -1,6 +1,8 @@
redefine
===
> 推荐使用 [retransform](retransform.md) 命令
[`mc-redefine`在线教程](https://arthas.aliyun.com/doc/arthas-tutorials?language=cn&id=command-mc-redefine)
> 加载外部的`.class`文件redefine jvm已加载的类。
@ -9,6 +11,8 @@ redefine
### 常见问题
> 推荐使用 [retransform](retransform.md) 命令
* redefine的class不能修改、添加、删除类的field和method包括方法参数、方法名称及返回值
* 如果mc失败可以在本地开发环境编译好class文件上传到目标系统使用redefine热加载class
@ -28,9 +32,6 @@ redefine
|---:|:---|
|[c:]|ClassLoader的hashcode|
|`[classLoaderClass:]`|指定执行表达式的 ClassLoader 的 class name|
|[p:]|外部的`.class`文件的完整路径,支持多个|
### 使用参考

@ -175,6 +175,44 @@ Affect(row-cnt:1) cost in 14 ms.
你会发现结果虽然一样,但调用的路径发生了变化,由原来的程序发起变成了 Arthas 自己的内部线程发起的调用了。
#### 观察表达式
`-w, --watch-express` 观察时空隧道使用`ognl` 表达式
* 使用[表达式核心变量](advice-class.md)中所有变量作为已知条件编写表达式。
```bash
[arthas@10718]$ tt -t demo.MathGame run -n 5
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 56 ms, listenerId: 1
INDEX TIMESTAMP COST(ms) IS-RET IS-EXP OBJECT CLASS METHOD
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1000 2021-01-08 21:54:17 0.901091 true false 0x7699a589 MathGame run
[arthas@10718]$ tt -w 'target.illegalArgumentCount' -x 1 -i 1000
@Integer[60]
Affect(row-cnt:1) cost in 7 ms.
```
* 获取类的静态字段、调用类的静态方法
```bash
[arthas@10718]$ tt -t demo.MathGame run -n 5
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 56 ms, listenerId: 1
INDEX TIMESTAMP COST(ms) IS-RET IS-EXP OBJECT CLASS METHOD
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1000 2021-01-08 21:54:17 0.901091 true false 0x7699a589 MathGame run
[arthas@10718]$ tt -w '@demo.MathGame@random.nextInt(100)' -x 1 -i 1000
@Integer[46]
```
注意这里使用 `com.taobao.arthas.core.advisor.Advice#getLoader`加载,使用精确`classloader` [ognl](ognl.md)更好。
高级用法 [获取spring context 调用bean 方法](https://github.com/alibaba/arthas/issues/482)
- 需要强调的点
1. **ThreadLocal 信息丢失**

@ -235,6 +235,23 @@ ts=2018-12-03 20:04:34; [cost=131.303498ms] result=@Integer[8]
ts=2018-12-03 20:04:35; [cost=0.961441ms] result=@Integer[8]
```
#### 获取类的静态字段、调用类的静态方法的例子
```bash
watch demo.MathGame * '{params,@demo.MathGame@random.nextInt(100)}' -v -n 1 -x 2
[arthas@6527]$ watch demo.MathGame * '{params,@demo.MathGame@random.nextInt(100)}' -n 1 -x 2
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 5) cost in 34 ms, listenerId: 3
ts=2021-01-05 21:35:20; [cost=0.173966ms] result=@ArrayList[
@Object[][
@Integer[-138282],
],
@Integer[89],
]
```
* 注意这里使用 `Thread.currentThread().getContextClassLoader()` 加载,使用精确`classloader` [ognl](ognl.md)更好。
#### 排除掉指定的类
> watch/trace/monitor/stack/tt 命令都支持 `--exclude-class-pattern` 参数

@ -1,6 +1,6 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
VERSION: '3.4.5',
VERSION: '3.4.6',
LANGUAGE: 'zh_CN',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>进阶使用 &mdash; Arthas 3.4.5 文档</title>
<title>进阶使用 &mdash; Arthas 3.4.6 文档</title>
@ -74,7 +74,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -103,7 +103,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>
@ -227,6 +228,7 @@
<li><p><a class="reference internal" href="cat.html"><span class="doc">cat</span></a>——打印文件内容和linux里的cat命令类似</p></li>
<li><p><a class="reference internal" href="echo.html"><span class="doc">echo</span></a>打印参数和linux里的echo命令类似</p></li>
<li><p><a class="reference internal" href="grep.html"><span class="doc">grep</span></a>——匹配查找和linux里的grep命令类似</p></li>
<li><p><a class="reference internal" href="base64.html"><span class="doc">base64</span></a>——base64编码转换和linux里的base64命令类似</p></li>
<li><p><a class="reference internal" href="tee.html"><span class="doc">tee</span></a>——复制标准输入到标准输出和指定的文件和linux里的tee命令类似</p></li>
<li><p><a class="reference internal" href="pwd.html"><span class="doc">pwd</span></a>——返回当前的工作目录和linux命令类似</p></li>
<li><p>cls——清空当前屏幕区域</p></li>
@ -263,6 +265,7 @@
<li><p><a class="reference internal" href="sm.html"><span class="doc">sm</span></a>——查看已加载类的方法信息</p></li>
<li><p><a class="reference internal" href="jad.html"><span class="doc">jad</span></a>——反编译指定已加载类的源码</p></li>
<li><p><a class="reference internal" href="mc.html"><span class="doc">mc</span></a>——内存编译器,内存编译<code class="docutils literal notranslate"><span class="pre">.java</span></code>文件为<code class="docutils literal notranslate"><span class="pre">.class</span></code>文件</p></li>
<li><p><a class="reference internal" href="retransform.html"><span class="doc">retransform</span></a>——加载外部的<code class="docutils literal notranslate"><span class="pre">.class</span></code>文件retransform到JVM里</p></li>
<li><p><a class="reference internal" href="redefine.html"><span class="doc">redefine</span></a>——加载外部的<code class="docutils literal notranslate"><span class="pre">.class</span></code>文件redefine到JVM里</p></li>
<li><p><a class="reference internal" href="dump.html"><span class="doc">dump</span></a>——dump 已加载类的 byte code 到特定目录</p></li>
<li><p><a class="reference internal" href="classloader.html"><span class="doc">classloader</span></a>——查看classloader的继承树urls类加载信息使用classloader去getResource</p></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>表达式核心变量 &mdash; Arthas 3.4.5 文档</title>
<title>表达式核心变量 &mdash; Arthas 3.4.6 文档</title>
@ -72,7 +72,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -101,7 +101,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>以Java Agent的方式启动 &mdash; Arthas 3.4.5 文档</title>
<title>以Java Agent的方式启动 &mdash; Arthas 3.4.6 文档</title>
@ -74,7 +74,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -103,7 +103,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Arthas Properties &mdash; Arthas 3.4.5 文档</title>
<title>Arthas Properties &mdash; Arthas 3.4.6 文档</title>
@ -74,7 +74,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -103,7 +103,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Arthas3.0的新特性 &mdash; Arthas 3.4.5 文档</title>
<title>Arthas3.0的新特性 &mdash; Arthas 3.4.6 文档</title>
@ -72,7 +72,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -101,7 +101,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Arthas 3.0新特性介绍 &mdash; Arthas 3.4.5 文档</title>
<title>Arthas 3.0新特性介绍 &mdash; Arthas 3.4.6 文档</title>
@ -72,7 +72,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -101,7 +101,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="../install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="../download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="../quick-start.html">快速入门</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Arthas后台异步任务 &mdash; Arthas 3.4.5 文档</title>
<title>Arthas后台异步任务 &mdash; Arthas 3.4.6 文档</title>
@ -74,7 +74,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -103,7 +103,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>批处理功能 &mdash; Arthas 3.4.5 文档</title>
<title>批处理功能 &mdash; Arthas 3.4.6 文档</title>
@ -74,7 +74,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -103,7 +103,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>cat &mdash; Arthas 3.4.5 文档</title>
<title>cat &mdash; Arthas 3.4.6 文档</title>
@ -74,7 +74,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -103,7 +103,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>
@ -127,6 +128,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -137,6 +139,7 @@
<li class="toctree-l2 current"><a class="current reference internal" href="#">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>classloader &mdash; Arthas 3.4.5 文档</title>
<title>classloader &mdash; Arthas 3.4.6 文档</title>
@ -74,7 +74,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -103,7 +103,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>
@ -139,6 +140,7 @@
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -149,6 +151,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>命令列表 &mdash; Arthas 3.4.5 文档</title>
<title>命令列表 &mdash; Arthas 3.4.6 文档</title>
@ -74,7 +74,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -103,7 +103,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>
@ -127,6 +128,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -137,6 +139,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
@ -243,6 +246,7 @@
<li class="toctree-l1"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l1"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l1"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l1"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l1"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l1"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l1"><a class="reference internal" href="watch.html">watch</a></li>
@ -253,6 +257,7 @@
<li class="toctree-l1"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l1"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l1"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l1"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l1"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l1"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l1"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>联系我们 &mdash; Arthas 3.4.5 文档</title>
<title>联系我们 &mdash; Arthas 3.4.6 文档</title>
@ -73,7 +73,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -102,7 +102,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>dashboard &mdash; Arthas 3.4.5 文档</title>
<title>dashboard &mdash; Arthas 3.4.6 文档</title>
@ -74,7 +74,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -103,7 +103,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>
@ -136,6 +137,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -146,6 +148,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Docker &mdash; Arthas 3.4.5 文档</title>
<title>Docker &mdash; Arthas 3.4.6 文档</title>
@ -74,7 +74,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -103,7 +103,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>下载 &mdash; Arthas 3.4.5 文档</title>
<title>下载 &mdash; Arthas 3.4.6 文档</title>
@ -74,7 +74,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -103,7 +103,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">下载</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#id2">下载全量包</a><ul>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>dump &mdash; Arthas 3.4.5 文档</title>
<title>dump &mdash; Arthas 3.4.6 文档</title>
@ -74,7 +74,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -103,7 +103,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>
@ -131,6 +132,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -141,6 +143,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>echo &mdash; Arthas 3.4.5 文档</title>
<title>echo &mdash; Arthas 3.4.6 文档</title>
@ -74,7 +74,7 @@
<div class="version">
3.4.5
3.4.6
</div>
@ -103,7 +103,8 @@
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(国内)</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(国外)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>
@ -127,6 +128,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -137,6 +139,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 5284b8e171e90cb633fef8fe68031aa1
config: 9f7cecd0264d1aac1ed1c3ad3f11ca41
tags: 645f666f9bcd5a90fca523b33c5a78b7

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>&lt;no title&gt; &mdash; Arthas ${revision} documentation</title>
<title>&lt;no title&gt; &mdash; Arthas 3.4.6 documentation</title>
@ -71,7 +71,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,6 +8,7 @@ Advanced Usage
* [cat](cat.md) - Concatenate and print files
* [echo](echo.md) - write arguments to the standard output
* [grep](grep.md) - Pattern searcher
* [base64](base64.md) - Encode and decode using Base64 representation.
* [tee](tee.md) - Copies standard input to standard output, making a copy in zero or more files.
* [pwd](pwd.md) - Return working directory name
* session - display current session information
@ -39,6 +40,7 @@ Advanced Usage
* [sm](sm.md) - check methods info for the loaded classes
* [jad](jad.md) - decompile the specified loaded classes
* [mc](mc.md) - Memory compiler, compiles `.java` files into `.class` files in memory
* [retransform](retransform.md) - load external `*.class` files and retransform it into JVM
* [redefine](redefine.md) - load external `*.class` files and re-define it into JVM
* [dump](dump.md) - dump the loaded classes in byte code to the specified location
* [classloader](classloader.md) - check the inheritance structure, urls, class loading info for the specified class; using classloader to get the url of the resource e.g. `java/lang/String.class`

@ -22,6 +22,7 @@ All Commands
* [jad](jad.md)
* [classloader](classloader.md)
* [mc](mc.md)
* [retransform](retransform.md)
* [redefine](redefine.md)
* [monitor](monitor.md)
@ -35,6 +36,7 @@ All Commands
* [cat](cat.md)
* [echo](echo.md)
* [grep](grep.md)
* [base64](base64.md)
* [tee](tee.md)
* [pwd](pwd.md)
* [options](options.md)

@ -8,6 +8,17 @@
[https://github.com/alibaba/arthas/issues/44](https://github.com/alibaba/arthas/issues/44)
##### Can commands such as trace/watch enhance the classes in jdk?
By default, classes beginning with `java.` are filtered out, but they can be turned on:
```bash
options unsafe true
```
See more at [options](options.md)
##### How to view the result in `json` format
```bash
@ -24,3 +35,29 @@ No.
##### Can arthas view the value of a variable in memory?
No. But you can use some tricks to intercept the object with the `tt` command, or fetch it from a static method.
##### How to filter method with the same name?
You can used all variables in [fundamental fields in expressions](advice-class.md) for the condition express to filter method with the same name, you can use the number of parameters `params.length ==1`,parameter type `params[0] instanceof java.lang.Integer`,return value type `returnObj instanceof java.util.List` and so on in one or more combinations as condition express.
You can use `-v` to view the condition express result [https://github.com/alibaba/arthas/issues/1348](https://github.com/alibaba/arthas/issues/1348)
example [arthas-demo](quick-start.md)
```bash
watch demo.MathGame primeFactors traceE '{params,returnObj,throwExp}' -v -n 5 -x 3 'params.length >0 && returnObj instanceof java.util.List'
```
##### How to watch or trace constructor?
```bash
watch demo.MathGame <init> '{params,returnObj,throwExp}' -v -n 5 -x 3 '1==1'
```
##### java.lang.ClassFormatError: null, skywalking arthas compatible use
When error log appear `java.lang.ClassFormatError: null`, it is usually modified by other bytecode tools that are not compatible with arthas modified bytecode.
For example: use skywalking V8.1.0 below [cannot trace, watch classes enhanced by skywalking agent](https://github.com/alibaba/arthas/issues/1141), V8.1.0 or above is compatible, refer to skywalking configuration for more details. [skywalking compatible with other javaagent bytecode processing](https://github.com/apache/skywalking/blob/v8.1.0/docs/en/FAQ/Compatible-with-other-javaagent-bytecode-processing.md).

@ -57,7 +57,7 @@ CharSequence {
#### Print source only
By default, the decompile result will have the `ClassLoader` information. With the `--source-only` option, you can print only the source code. Conveniently used with the [mc](mc.md)/[redefine](redefine.md) commands.
By default, the decompile result will have the `ClassLoader` information. With the `--source-only` option, you can print only the source code. Conveniently used with the [mc](mc.md)/[retransform](retransform.md) commands.
```
$ jad --source-only demo.MathGame

@ -30,6 +30,6 @@ The output directory can be specified with the `-d` option:
mc -d /tmp/output /tmp/ClassA.java /tmp/ClassB.java
```
After compiling the `.class` file, you can use the [redefine](redefine.md) command to re-define the loaded classes in JVM.
After compiling the `.class` file, you can use the [retransform](retransform.md) command to re-define the loaded classes in JVM.
> Note that the mc command may fail. If the compilation fails, the `.class` file can be compiled locally and uploaded to the server. Refer to the [redefine](redefine.md) command description for details.
> Note that the mc command may fail. If the compilation fails, the `.class` file can be compiled locally and uploaded to the server. Refer to the [retransform](retransform.md) command description for details.

@ -1,6 +1,8 @@
redefine
========
> Recommend to use the [retransform](retransform.md) command.
[`mc-redefine` online tutorial](https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=command-mc-redefine)
> Load the external `*.class` files to re-define the loaded classes in JVM.
@ -9,6 +11,8 @@ Reference: [Instrumentation#redefineClasses](https://docs.oracle.com/javase/8/do
### Frequently asked questions
> Recommend to use the [retransform](retransform.md) command.
* The class of `redefine` cannot modify, add or delete the field and method of the class, including method parameters, method names and return values.
* If `mc` fails, you can compile the class file in the local development environment, upload it to the target system, and use `redefine` to hot load the class.
@ -29,7 +33,6 @@ Reference: [Instrumentation#redefineClasses](https://docs.oracle.com/javase/8/do
|---:|:---|
|`[c:]`|hashcode of the class loader|
|`[classLoaderClass:]`| The class name of the ClassLoader that executes the expression. |
|`[p:]`|absolute path of the external `*.class`, multiple paths are separated with 'space'|
### Usage

@ -127,7 +127,7 @@ $ tt -i 1003
Affect(row-cnt:1) cost in 11 ms.
```
### Replay record
#### Replay record
Since Arthas stores the context of the call, you can even *replay* the method calling afterwards with extra option `-p` to replay the issue for advanced troubleshooting, option `--replay-times`
define the replay execution times, option `--replay-interval` define the interval(unit in ms,with default value 1000) of replays
@ -152,13 +152,50 @@ Time fragment[1004] successfully replayed.
Affect(row-cnt:1) cost in 14 ms.
```
#### Watch express
`-w, --watch-express` watch the time fragment by ognl express.
* You can used all variables in [fundamental fields in expressions](advice-class.md) for the watch express。
```bash
[arthas@10718]$ tt -t demo.MathGame run -n 5
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 56 ms, listenerId: 1
INDEX TIMESTAMP COST(ms) IS-RET IS-EXP OBJECT CLASS METHOD
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1000 2021-01-08 21:54:17 0.901091 true false 0x7699a589 MathGame run
[arthas@10718]$ tt -w 'target.illegalArgumentCount' -x 1 -i 1000
@Integer[60]
Affect(row-cnt:1) cost in 7 ms.
```
* Get a static field and calling a static method
```bash
[arthas@10718]$ tt -t demo.MathGame run -n 5
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 56 ms, listenerId: 1
INDEX TIMESTAMP COST(ms) IS-RET IS-EXP OBJECT CLASS METHOD
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1000 2021-01-08 21:54:17 0.901091 true false 0x7699a589 MathGame run
[arthas@10718]$ tt -w '@demo.MathGame@random.nextInt(100)' -x 1 -i 1000
@Integer[46]
```
Note that `com.taobao.arthas.core.advisor.Advice#getLoader` is used here, and that it is better to use the exact `classloader` [ognl](ognl.md).
Advanced usage [get spring context to call the bean method](https://github.com/alibaba/arthas/issues/482)
F.Y.I
1. **Loss** of the `ThreadLocal`
Arthas save params into an array, then invoke the method with the params again. The method execute in another thread, so the `ThreadLocal` **lost**.
1. params may be modified
2. params may be modified
Arthas save params into an array, they are object references. The Objects may be modified by other code.

@ -235,6 +235,23 @@ ts=2018-12-03 20:04:34; [cost=131.303498ms] result=@Integer[8]
ts=2018-12-03 20:04:35; [cost=0.961441ms] result=@Integer[8]
```
#### Get a static field and calling a static method
```bash
watch demo.MathGame * '{params,@demo.MathGame@random.nextInt(100)}' -v -n 1 -x 2
[arthas@6527]$ watch demo.MathGame * '{params,@demo.MathGame@random.nextInt(100)}' -n 1 -x 2
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 5) cost in 34 ms, listenerId: 3
ts=2021-01-05 21:35:20; [cost=0.173966ms] result=@ArrayList[
@Object[][
@Integer[-138282],
],
@Integer[89],
]
```
* Note that here you use `Thread.currentThread().getContextClassLoader()` to load, and it is better to use the exact `classloader` [ognl](ognl.md).
#### Exclude the specified class

@ -1,6 +1,6 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
VERSION: '${revision}',
VERSION: '3.4.6',
LANGUAGE: 'en',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Advanced Usage &mdash; Arthas ${revision} documentation</title>
<title>Advanced Usage &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -224,6 +224,7 @@
<li><p><a class="reference internal" href="cat.html"><span class="doc">cat</span></a> - Concatenate and print files</p></li>
<li><p><a class="reference internal" href="echo.html"><span class="doc">echo</span></a> - write arguments to the standard output</p></li>
<li><p><a class="reference internal" href="grep.html"><span class="doc">grep</span></a> - Pattern searcher</p></li>
<li><p><a class="reference internal" href="base64.html"><span class="doc">base64</span></a> - Encode and decode using Base64 representation.</p></li>
<li><p><a class="reference internal" href="tee.html"><span class="doc">tee</span></a> - Copies standard input to standard output, making a copy in zero or more files.</p></li>
<li><p><a class="reference internal" href="pwd.html"><span class="doc">pwd</span></a> - Return working directory name</p></li>
<li><p>session - display current session information</p></li>
@ -259,6 +260,7 @@
<li><p><a class="reference internal" href="sm.html"><span class="doc">sm</span></a> - check methods info for the loaded classes</p></li>
<li><p><a class="reference internal" href="jad.html"><span class="doc">jad</span></a> - decompile the specified loaded classes</p></li>
<li><p><a class="reference internal" href="mc.html"><span class="doc">mc</span></a> - Memory compiler, compiles <code class="docutils literal notranslate"><span class="pre">.java</span></code> files into <code class="docutils literal notranslate"><span class="pre">.class</span></code> files in memory</p></li>
<li><p><a class="reference internal" href="retransform.html"><span class="doc">retransform</span></a> - load external <code class="docutils literal notranslate"><span class="pre">*.class</span></code> files and retransform it into JVM</p></li>
<li><p><a class="reference internal" href="redefine.html"><span class="doc">redefine</span></a> - load external <code class="docutils literal notranslate"><span class="pre">*.class</span></code> files and re-define it into JVM</p></li>
<li><p><a class="reference internal" href="dump.html"><span class="doc">dump</span></a> - dump the loaded classes in byte code to the specified location</p></li>
<li><p><a class="reference internal" href="classloader.html"><span class="doc">classloader</span></a> - check the inheritance structure, urls, class loading info for the specified class; using classloader to get the url of the resource e.g. <code class="docutils literal notranslate"><span class="pre">java/lang/String.class</span></code></p></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Fundamental Fields in Expressions &mdash; Arthas ${revision} documentation</title>
<title>Fundamental Fields in Expressions &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -123,6 +123,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="watch.html">watch</a><ul class="current">
@ -142,6 +143,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Start as a Java Agent &mdash; Arthas ${revision} documentation</title>
<title>Start as a Java Agent &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Arthas Properties &mdash; Arthas ${revision} documentation</title>
<title>Arthas Properties &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Arthas Async Jobs &mdash; Arthas ${revision} documentation</title>
<title>Arthas Async Jobs &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Batch Processing &mdash; Arthas ${revision} documentation</title>
<title>Batch Processing &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>cat &mdash; Arthas ${revision} documentation</title>
<title>cat &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -123,6 +123,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -133,6 +134,7 @@
<li class="toctree-l2 current"><a class="current reference internal" href="#">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>classloader &mdash; Arthas ${revision} documentation</title>
<title>classloader &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -135,6 +135,7 @@
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -145,6 +146,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>All Commands &mdash; Arthas ${revision} documentation</title>
<title>All Commands &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -123,6 +123,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -133,6 +134,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
@ -239,6 +241,7 @@
<li class="toctree-l1"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l1"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l1"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l1"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l1"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l1"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l1"><a class="reference internal" href="watch.html">watch</a></li>
@ -249,6 +252,7 @@
<li class="toctree-l1"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l1"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l1"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l1"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l1"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l1"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l1"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Contact Us &mdash; Arthas ${revision} documentation</title>
<title>Contact Us &mdash; Arthas 3.4.6 documentation</title>
@ -72,7 +72,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>dashboard &mdash; Arthas ${revision} documentation</title>
<title>dashboard &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -132,6 +132,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -142,6 +143,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Docker &mdash; Arthas ${revision} documentation</title>
<title>Docker &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Download &mdash; Arthas ${revision} documentation</title>
<title>Download &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>dump &mdash; Arthas ${revision} documentation</title>
<title>dump &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -127,6 +127,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -137,6 +138,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>echo &mdash; Arthas ${revision} documentation</title>
<title>echo &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -123,6 +123,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -133,6 +134,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FAQ &mdash; Arthas ${revision} documentation</title>
<title>FAQ &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -114,9 +114,13 @@
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">FAQ</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#how-much-impact-does-arthas-attach-have-on-the-performance-of-the-original-process">How much impact does Arthas attach have on the performance of the original process?</a></li>
<li class="toctree-l2"><a class="reference internal" href="#can-commands-such-as-trace-watch-enhance-the-classes-in-jdk">Can commands such as trace/watch enhance the classes in jdk?</a></li>
<li class="toctree-l2"><a class="reference internal" href="#how-to-view-the-result-in-json-format">How to view the result in <code class="docutils literal notranslate"><span class="pre">json</span></code> format</a></li>
<li class="toctree-l2"><a class="reference internal" href="#can-arthas-trace-native-methods">Can arthas trace native methods</a></li>
<li class="toctree-l2"><a class="reference internal" href="#can-arthas-view-the-value-of-a-variable-in-memory">Can arthas view the value of a variable in memory?</a></li>
<li class="toctree-l2"><a class="reference internal" href="#how-to-filter-method-with-the-same-name">How to filter method with the same name?</a></li>
<li class="toctree-l2"><a class="reference internal" href="#how-to-watch-or-trace-constructor">How to watch or trace constructor?</a></li>
<li class="toctree-l2"><a class="reference internal" href="#java-lang-classformaterror-null-skywalking-arthas-compatible-use">java.lang.ClassFormatError: null, skywalking arthas compatible use</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Star me at GitHub</a></li>
@ -198,6 +202,13 @@
<h2>How much impact does Arthas attach have on the performance of the original process?<a class="headerlink" href="#how-much-impact-does-arthas-attach-have-on-the-performance-of-the-original-process" title="Permalink to this headline"></a></h2>
<p><a class="reference external" href="https://github.com/alibaba/arthas/issues/44">https://github.com/alibaba/arthas/issues/44</a></p>
</div>
<div class="section" id="can-commands-such-as-trace-watch-enhance-the-classes-in-jdk">
<h2>Can commands such as trace/watch enhance the classes in jdk?<a class="headerlink" href="#can-commands-such-as-trace-watch-enhance-the-classes-in-jdk" title="Permalink to this headline"></a></h2>
<p>By default, classes beginning with <code class="docutils literal notranslate"><span class="pre">java.</span></code> are filtered out, but they can be turned on:</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">options unsafe true</pre></div>
</div>
<p>See more at <a class="reference internal" href="options.html"><span class="doc">options</span></a></p>
</div>
<div class="section" id="how-to-view-the-result-in-json-format">
<h2>How to view the result in <code class="docutils literal notranslate"><span class="pre">json</span></code> format<a class="headerlink" href="#how-to-view-the-result-in-json-format" title="Permalink to this headline"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">options json-format true</pre></div>
@ -212,6 +223,24 @@
<h2>Can arthas view the value of a variable in memory?<a class="headerlink" href="#can-arthas-view-the-value-of-a-variable-in-memory" title="Permalink to this headline"></a></h2>
<p>No. But you can use some tricks to intercept the object with the <code class="docutils literal notranslate"><span class="pre">tt</span></code> command, or fetch it from a static method.</p>
</div>
<div class="section" id="how-to-filter-method-with-the-same-name">
<h2>How to filter method with the same name?<a class="headerlink" href="#how-to-filter-method-with-the-same-name" title="Permalink to this headline"></a></h2>
<p>You can used all variables in <a class="reference internal" href="advice-class.html"><span class="doc">fundamental fields in expressions</span></a> for the condition express to filter method with the same name, you can use the number of parameters <code class="docutils literal notranslate"><span class="pre">params.length</span> <span class="pre">==1</span></code>,parameter type <code class="docutils literal notranslate"><span class="pre">params[0]</span> <span class="pre">instanceof</span> <span class="pre">java.lang.Integer</span></code>,return value type <code class="docutils literal notranslate"><span class="pre">returnObj</span> <span class="pre">instanceof</span> <span class="pre">java.util.List</span></code> and so on in one or more combinations as condition express.</p>
<p>You can use <code class="docutils literal notranslate"><span class="pre">-v</span></code> to view the condition express result <a class="reference external" href="https://github.com/alibaba/arthas/issues/1348">https://github.com/alibaba/arthas/issues/1348</a></p>
<p>example <a class="reference internal" href="quick-start.html"><span class="doc">arthas-demo</span></a></p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">watch demo.MathGame primeFactors traceE &#x27;{params,returnObj,throwExp}&#x27; -v -n 5 -x 3 &#x27;params.length &gt;0 &amp;&amp; returnObj instanceof java.util.List&#x27;</pre></div>
</div>
</div>
<div class="section" id="how-to-watch-or-trace-constructor">
<h2>How to watch or trace constructor?<a class="headerlink" href="#how-to-watch-or-trace-constructor" title="Permalink to this headline"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">watch demo.MathGame &lt;init&gt; &#x27;{params,returnObj,throwExp}&#x27; -v -n 5 -x 3 &#x27;1==1&#x27;</pre></div>
</div>
</div>
<div class="section" id="java-lang-classformaterror-null-skywalking-arthas-compatible-use">
<h2>java.lang.ClassFormatError: null, skywalking arthas compatible use<a class="headerlink" href="#java-lang-classformaterror-null-skywalking-arthas-compatible-use" title="Permalink to this headline"></a></h2>
<p>When error log appear <code class="docutils literal notranslate"><span class="pre">java.lang.ClassFormatError:</span> <span class="pre">null</span></code>, it is usually modified by other bytecode tools that are not compatible with arthas modified bytecode.</p>
<p>For example: use skywalking V8.1.0 below <a class="reference external" href="https://github.com/alibaba/arthas/issues/1141">cannot trace, watch classes enhanced by skywalking agent</a>, V8.1.0 or above is compatible, refer to skywalking configuration for more details. <a class="reference external" href="https://github.com/apache/skywalking/blob/v8.1.0/docs/en/FAQ/Compatible-with-other-javaagent-bytecode-processing">skywalking compatible with other javaagent bytecode processing</a>.</p>
</div>
</div>

@ -9,7 +9,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Index &mdash; Arthas ${revision} documentation</title>
<title>Index &mdash; Arthas 3.4.6 documentation</title>
@ -72,7 +72,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>getstatic &mdash; Arthas ${revision} documentation</title>
<title>getstatic &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -127,6 +127,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -137,6 +138,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>grep &mdash; Arthas ${revision} documentation</title>
<title>grep &mdash; Arthas 3.4.6 documentation</title>
@ -38,7 +38,7 @@
<link rel="stylesheet" href="_static/overrides.css" type="text/css" />
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="tee" href="tee.html" />
<link rel="next" title="base64" href="base64.html" />
<link rel="prev" title="echo" href="echo.html" />
<script>
if (window.location.href.startsWith("https://alibaba.github.io/arthas/")) {
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -123,6 +123,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -133,6 +134,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
@ -265,7 +267,7 @@
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="tee.html" class="btn btn-neutral float-right" title="tee" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="base64.html" class="btn btn-neutral float-right" title="base64" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="echo.html" class="btn btn-neutral float-left" title="echo" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>groovy &mdash; Arthas ${revision} documentation</title>
<title>groovy &mdash; Arthas 3.4.6 documentation</title>
@ -71,7 +71,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>heapdump &mdash; Arthas ${revision} documentation</title>
<title>heapdump &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -131,6 +131,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -141,6 +142,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Http API &mdash; Arthas ${revision} documentation</title>
<title>Http API &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>IDEA Plugin &mdash; Arthas ${revision} documentation</title>
<title>IDEA Plugin &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Arthas Documentation &mdash; Arthas ${revision} documentation</title>
<title>Arthas Documentation &mdash; Arthas 3.4.6 documentation</title>
@ -72,7 +72,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Install Arthas &mdash; Arthas ${revision} documentation</title>
<title>Install Arthas &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jad &mdash; Arthas ${revision} documentation</title>
<title>jad &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -133,6 +133,7 @@
</li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -143,6 +144,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
@ -304,7 +306,7 @@ CharSequence {
</div>
<div class="section" id="print-source-only">
<h3>Print source only<a class="headerlink" href="#print-source-only" title="Permalink to this headline"></a></h3>
<p>By default, the decompile result will have the <code class="docutils literal notranslate"><span class="pre">ClassLoader</span></code> information. With the <code class="docutils literal notranslate"><span class="pre">--source-only</span></code> option, you can print only the source code. Conveniently used with the <a class="reference internal" href="mc.html"><span class="doc">mc</span></a>/<a class="reference internal" href="redefine.html"><span class="doc">redefine</span></a> commands.</p>
<p>By default, the decompile result will have the <code class="docutils literal notranslate"><span class="pre">ClassLoader</span></code> information. With the <code class="docutils literal notranslate"><span class="pre">--source-only</span></code> option, you can print only the source code. Conveniently used with the <a class="reference internal" href="mc.html"><span class="doc">mc</span></a>/<a class="reference internal" href="retransform.html"><span class="doc">retransform</span></a> commands.</p>
<div class="highlight-default notranslate"><pre class="literal-block">$ jad --source-only demo.MathGame
/*
* Decompiled with CFR 0_132.

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jvm &mdash; Arthas ${revision} documentation</title>
<title>jvm &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -128,6 +128,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -138,6 +139,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Arthas Console Keymap &mdash; Arthas ${revision} documentation</title>
<title>Arthas Console Keymap &mdash; Arthas 3.4.6 documentation</title>
@ -71,7 +71,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>logger &mdash; Arthas ${revision} documentation</title>
<title>logger &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -134,6 +134,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -144,6 +145,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Manually Install Arthas &mdash; Arthas ${revision} documentation</title>
<title>Manually Install Arthas &mdash; Arthas 3.4.6 documentation</title>
@ -71,7 +71,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>mbean &mdash; Arthas ${revision} documentation</title>
<title>mbean &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -127,6 +127,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -137,6 +138,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>mc &mdash; Arthas ${revision} documentation</title>
<title>mc &mdash; Arthas 3.4.6 documentation</title>
@ -38,7 +38,7 @@
<link rel="stylesheet" href="_static/overrides.css" type="text/css" />
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="redefine" href="redefine.html" />
<link rel="next" title="retransform" href="retransform.html" />
<link rel="prev" title="classloader" href="classloader.html" />
<script>
if (window.location.href.startsWith("https://alibaba.github.io/arthas/")) {
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -123,6 +123,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -133,6 +134,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
@ -239,9 +241,9 @@ Affect(row-cnt:1) cost in 346 ms</pre></div>
<p>The output directory can be specified with the <code class="docutils literal notranslate"><span class="pre">-d</span></code> option:</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">mc -d /tmp/output /tmp/ClassA.java /tmp/ClassB.java</pre></div>
</div>
<p>After compiling the <code class="docutils literal notranslate"><span class="pre">.class</span></code> file, you can use the <a class="reference internal" href="redefine.html"><span class="doc">redefine</span></a> command to re-define the loaded classes in JVM.</p>
<p>After compiling the <code class="docutils literal notranslate"><span class="pre">.class</span></code> file, you can use the <a class="reference internal" href="retransform.html"><span class="doc">retransform</span></a> command to re-define the loaded classes in JVM.</p>
<blockquote>
<div><p>Note that the mc command may fail. If the compilation fails, the <code class="docutils literal notranslate"><span class="pre">.class</span></code> file can be compiled locally and uploaded to the server. Refer to the <a class="reference internal" href="redefine.html"><span class="doc">redefine</span></a> command description for details.</p>
<div><p>Note that the mc command may fail. If the compilation fails, the <code class="docutils literal notranslate"><span class="pre">.class</span></code> file can be compiled locally and uploaded to the server. Refer to the <a class="reference internal" href="retransform.html"><span class="doc">retransform</span></a> command description for details.</p>
</div></blockquote>
</div>
@ -253,7 +255,7 @@ Affect(row-cnt:1) cost in 346 ms</pre></div>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="redefine.html" class="btn btn-neutral float-right" title="redefine" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="retransform.html" class="btn btn-neutral float-right" title="retransform" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="classloader.html" class="btn btn-neutral float-left" title="classloader" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>monitor &mdash; Arthas ${revision} documentation</title>
<title>monitor &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -123,6 +123,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">monitor</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#items-to-monitor">Items to monitor</a></li>
@ -142,6 +143,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

Binary file not shown.

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ognl &mdash; Arthas ${revision} documentation</title>
<title>ognl &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -131,6 +131,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -141,6 +142,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>options &mdash; Arthas ${revision} documentation</title>
<title>options &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -123,6 +123,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -133,6 +134,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">options</a><ul>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>perfcounter &mdash; Arthas ${revision} documentation</title>
<title>perfcounter &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -127,6 +127,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -137,6 +138,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>profiler &mdash; Arthas ${revision} documentation</title>
<title>profiler &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -123,6 +123,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -154,6 +155,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pwd &mdash; Arthas ${revision} documentation</title>
<title>pwd &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -123,6 +123,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -133,6 +134,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Quick Start &mdash; Arthas ${revision} documentation</title>
<title>Quick Start &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>redefine &mdash; Arthas ${revision} documentation</title>
<title>redefine &mdash; Arthas 3.4.6 documentation</title>
@ -39,7 +39,7 @@
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="monitor" href="monitor.html" />
<link rel="prev" title="mc" href="mc.html" />
<link rel="prev" title="retransform" href="retransform.html" />
<script>
if (window.location.href.startsWith("https://alibaba.github.io/arthas/")) {
window.location.href = "https://arthas.aliyun.com/doc/" + window.location.href.substr("https://alibaba.github.io/arthas/".length);
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -123,6 +123,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">redefine</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#frequently-asked-questions">Frequently asked questions</a></li>
<li class="toctree-l3"><a class="reference internal" href="#options">Options</a></li>
@ -141,6 +142,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
@ -229,6 +231,9 @@
<div class="section" id="redefine">
<h1>redefine<a class="headerlink" href="#redefine" title="Permalink to this headline"></a></h1>
<blockquote>
<div><p>Recommend to use the <a class="reference internal" href="retransform.html"><span class="doc">retransform</span></a> command.</p>
</div></blockquote>
<p><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials?language=en&amp;id=command-mc-redefine"><code class="docutils literal notranslate"><span class="pre">mc-redefine</span></code> online tutorial</a></p>
<blockquote>
<div><p>Load the external <code class="docutils literal notranslate"><span class="pre">*.class</span></code> files to re-define the loaded classes in JVM.</p>
@ -236,6 +241,9 @@
<p>Reference: <a class="reference external" href="https://docs.oracle.com/javase/8/docs/api/java/lang/instrument/Instrumentation.html#redefineClasses-java.lang.instrument.ClassDefinition...-">Instrumentation#redefineClasses</a></p>
<div class="section" id="frequently-asked-questions">
<h2>Frequently asked questions<a class="headerlink" href="#frequently-asked-questions" title="Permalink to this headline"></a></h2>
<blockquote>
<div><p>Recommend to use the <a class="reference internal" href="retransform.html"><span class="doc">retransform</span></a> command.</p>
</div></blockquote>
<ul class="simple">
<li><p>The class of <code class="docutils literal notranslate"><span class="pre">redefine</span></code> cannot modify, add or delete the field and method of the class, including method parameters, method names and return values.</p></li>
<li><p>If <code class="docutils literal notranslate"><span class="pre">mc</span></code> fails, you can compile the class file in the local development environment, upload it to the target system, and use <code class="docutils literal notranslate"><span class="pre">redefine</span></code> to hot load the class.</p></li>
@ -270,10 +278,6 @@ The reason is that in the JDK <code class="docutils literal notranslate"><span c
<td align="right"><code>[classLoaderClass:]</code></td>
<td align="left">The class name of the ClassLoader that executes the expression.</td>
</tr>
<tr>
<td align="right"><code>[p:]</code></td>
<td align="left">absolute path of the external <code>*.class</code>, multiple paths are separated with 'space'</td>
</tr>
</tbody>
</table></div>
<div class="section" id="usage">
@ -360,7 +364,7 @@ redefine /tmp/com/example/demo/arthas/user/UserController.class</pre></div>
<a href="monitor.html" class="btn btn-neutral float-right" title="monitor" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="mc.html" class="btn btn-neutral float-left" title="mc" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="retransform.html" class="btn btn-neutral float-left" title="retransform" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Release Notes &mdash; Arthas ${revision} documentation</title>
<title>Release Notes &mdash; Arthas 3.4.6 documentation</title>
@ -71,7 +71,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>reset &mdash; Arthas ${revision} documentation</title>
<title>reset &mdash; Arthas 3.4.6 documentation</title>
@ -71,7 +71,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Log command outputs &mdash; Arthas ${revision} documentation</title>
<title>Log command outputs &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>sc &mdash; Arthas ${revision} documentation</title>
<title>sc &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -127,6 +127,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -137,6 +138,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Search &mdash; Arthas ${revision} documentation</title>
<title>Search &mdash; Arthas 3.4.6 documentation</title>
@ -72,7 +72,7 @@
<div class="version">
${revision}
3.4.6
</div>

File diff suppressed because one or more lines are too long

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>sm &mdash; Arthas ${revision} documentation</title>
<title>sm &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -127,6 +127,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -137,6 +138,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Arthas Spring Boot Starter &mdash; Arthas ${revision} documentation</title>
<title>Arthas Spring Boot Starter &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>stack &mdash; Arthas ${revision} documentation</title>
<title>stack &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -123,6 +123,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -143,6 +144,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Start Arthas &mdash; Arthas ${revision} documentation</title>
<title>Start Arthas &mdash; Arthas 3.4.6 documentation</title>
@ -71,7 +71,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>sysenv &mdash; Arthas ${revision} documentation</title>
<title>sysenv &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -130,6 +130,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -140,6 +141,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>sysprop &mdash; Arthas ${revision} documentation</title>
<title>sysprop &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -131,6 +131,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -141,6 +142,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>tee &mdash; Arthas ${revision} documentation</title>
<title>tee &mdash; Arthas 3.4.6 documentation</title>
@ -39,7 +39,7 @@
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="pwd" href="pwd.html" />
<link rel="prev" title="grep" href="grep.html" />
<link rel="prev" title="base64" href="base64.html" />
<script>
if (window.location.href.startsWith("https://alibaba.github.io/arthas/")) {
window.location.href = "https://arthas.aliyun.com/doc/" + window.location.href.substr("https://alibaba.github.io/arthas/".length);
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -123,6 +123,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -133,6 +134,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
@ -259,7 +261,7 @@
<a href="pwd.html" class="btn btn-neutral float-right" title="pwd" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="grep.html" class="btn btn-neutral float-left" title="grep" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="base64.html" class="btn btn-neutral float-left" title="base64" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>thread &mdash; Arthas ${revision} documentation</title>
<title>thread &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -137,6 +137,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -147,6 +148,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>trace &mdash; Arthas ${revision} documentation</title>
<title>trace &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -123,6 +123,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -148,6 +149,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>tt &mdash; Arthas ${revision} documentation</title>
<title>tt &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -123,6 +123,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -135,15 +136,17 @@
<li class="toctree-l4"><a class="reference internal" href="#list-all-records">List all records</a></li>
<li class="toctree-l4"><a class="reference internal" href="#searching-for-records">Searching for records</a></li>
<li class="toctree-l4"><a class="reference internal" href="#check-context-of-the-call">Check context of the call</a></li>
<li class="toctree-l4"><a class="reference internal" href="#replay-record">Replay record</a></li>
<li class="toctree-l4"><a class="reference internal" href="#watch-express">Watch express</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#replay-record">Replay record</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="profiler.html">profiler</a></li>
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
@ -381,9 +384,8 @@ Affect(row-cnt:6) cost in 607 ms.</pre></div>
Affect(row-cnt:1) cost in 11 ms.</pre></div>
</div>
</div>
</div>
<div class="section" id="replay-record">
<h2>Replay record<a class="headerlink" href="#replay-record" title="Permalink to this headline"></a></h2>
<h3>Replay record<a class="headerlink" href="#replay-record" title="Permalink to this headline"></a></h3>
<p>Since Arthas stores the context of the call, you can even <em>replay</em> the method calling afterwards with extra option <code class="docutils literal notranslate"><span class="pre">-p</span></code> to replay the issue for advanced troubleshooting, option <code class="docutils literal notranslate"><span class="pre">--replay-times</span></code>
define the replay execution times, option <code class="docutils literal notranslate"><span class="pre">--replay-interval</span></code> define the interval(unit in ms,with default value 1000) of replays</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ tt -i 1004 -p
@ -404,6 +406,37 @@ define the replay execution times, option <code class="docutils literal notrans
Time fragment[1004] successfully replayed.
Affect(row-cnt:1) cost in 14 ms.</pre></div>
</div>
</div>
<div class="section" id="watch-express">
<h3>Watch express<a class="headerlink" href="#watch-express" title="Permalink to this headline"></a></h3>
<p><code class="docutils literal notranslate"><span class="pre">-w,</span> <span class="pre">--watch-express</span></code> watch the time fragment by ognl express.</p>
<ul class="simple">
<li><p>You can used all variables in <a class="reference internal" href="advice-class.html"><span class="doc">fundamental fields in expressions</span></a> for the watch express。</p></li>
</ul>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">[arthas@10718]$ tt -t demo.MathGame run -n 5
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 56 ms, listenerId: 1
INDEX TIMESTAMP COST(ms) IS-RET IS-EXP OBJECT CLASS METHOD
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1000 2021-01-08 21:54:17 0.901091 true false 0x7699a589 MathGame run
[arthas@10718]$ tt -w &#x27;target.illegalArgumentCount&#x27; -x 1 -i 1000
@Integer[60]
Affect(row-cnt:1) cost in 7 ms.</pre></div>
</div>
<ul class="simple">
<li><p>Get a static field and calling a static method</p></li>
</ul>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">[arthas@10718]$ tt -t demo.MathGame run -n 5
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 1) cost in 56 ms, listenerId: 1
INDEX TIMESTAMP COST(ms) IS-RET IS-EXP OBJECT CLASS METHOD
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1000 2021-01-08 21:54:17 0.901091 true false 0x7699a589 MathGame run
[arthas@10718]$ tt -w &#x27;@demo.MathGame@random.nextInt(100)&#x27; -x 1 -i 1000
@Integer[46]</pre></div>
</div>
<p>Note that <code class="docutils literal notranslate"><span class="pre">com.taobao.arthas.core.advisor.Advice#getLoader</span></code> is used here, and that it is better to use the exact <code class="docutils literal notranslate"><span class="pre">classloader</span></code> <a class="reference internal" href="ognl.html"><span class="doc">ognl</span></a>.</p>
<p>Advanced usage <a class="reference external" href="https://github.com/alibaba/arthas/issues/482">get spring context to call the bean method</a></p>
<p>F.Y.I</p>
<ol>
<li><p><strong>Loss</strong> of the <code class="docutils literal notranslate"><span class="pre">ThreadLocal</span></code></p>
@ -414,6 +447,7 @@ Affect(row-cnt:1) cost in 14 ms.</pre></div>
</li>
</ol>
</div>
</div>
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Arthas Tunnel &mdash; Arthas ${revision} documentation</title>
<title>Arthas Tunnel &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>vmoption &mdash; Arthas ${revision} documentation</title>
<title>vmoption &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -131,6 +131,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
@ -141,6 +142,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>watch &mdash; Arthas ${revision} documentation</title>
<title>watch &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>
@ -123,6 +123,7 @@
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="mc.html">mc</a></li>
<li class="toctree-l2"><a class="reference internal" href="retransform.html">retransform</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">watch</a><ul>
@ -142,6 +143,7 @@
<li class="toctree-l4"><a class="reference internal" href="#check-exceptions">Check <code class="docutils literal notranslate"><span class="pre">exceptions</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="#filter-by-time-cost">Filter by time cost</a></li>
<li class="toctree-l4"><a class="reference internal" href="#check-the-field-of-the-target-object">Check the field of the target object</a></li>
<li class="toctree-l4"><a class="reference internal" href="#get-a-static-field-and-calling-a-static-method">Get a static field and calling a static method</a></li>
<li class="toctree-l4"><a class="reference internal" href="#exclude-the-specified-class">Exclude the specified class</a></li>
<li class="toctree-l4"><a class="reference internal" href="#does-not-match-subclass">Does not match subclass</a></li>
<li class="toctree-l4"><a class="reference internal" href="#use-the-v-parameter-to-print-more-information">Use the -v parameter to print more information</a></li>
@ -156,6 +158,7 @@
<li class="toctree-l2"><a class="reference internal" href="cat.html">cat</a></li>
<li class="toctree-l2"><a class="reference internal" href="echo.html">echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="grep.html">grep</a></li>
<li class="toctree-l2"><a class="reference internal" href="base64.html">base64</a></li>
<li class="toctree-l2"><a class="reference internal" href="tee.html">tee</a></li>
<li class="toctree-l2"><a class="reference internal" href="pwd.html">pwd</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
@ -506,6 +509,23 @@ ts=2018-12-03 20:04:34; [cost=131.303498ms] result=@Integer[8]
ts=2018-12-03 20:04:35; [cost=0.961441ms] result=@Integer[8]</pre></div>
</div>
</div>
<div class="section" id="get-a-static-field-and-calling-a-static-method">
<h3>Get a static field and calling a static method<a class="headerlink" href="#get-a-static-field-and-calling-a-static-method" title="Permalink to this headline"></a></h3>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">watch demo.MathGame * &#x27;{params,@demo.MathGame@random.nextInt(100)}&#x27; -v -n 1 -x 2
[arthas@6527]$ watch demo.MathGame * &#x27;{params,@demo.MathGame@random.nextInt(100)}&#x27; -n 1 -x 2
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 5) cost in 34 ms, listenerId: 3
ts=2021-01-05 21:35:20; [cost=0.173966ms] result=@ArrayList[
@Object[][
@Integer[-138282],
],
@Integer[89],
]</pre></div>
</div>
<ul class="simple">
<li><p>Note that here you use <code class="docutils literal notranslate"><span class="pre">Thread.currentThread().getContextClassLoader()</span></code> to load, and it is better to use the exact <code class="docutils literal notranslate"><span class="pre">classloader</span></code> <a class="reference internal" href="ognl.html"><span class="doc">ognl</span></a>.</p></li>
</ul>
</div>
<div class="section" id="exclude-the-specified-class">
<h3>Exclude the specified class<a class="headerlink" href="#exclude-the-specified-class" title="Permalink to this headline"></a></h3>
<blockquote>

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Web Console &mdash; Arthas ${revision} documentation</title>
<title>Web Console &mdash; Arthas 3.4.6 documentation</title>
@ -73,7 +73,7 @@
<div class="version">
${revision}
3.4.6
</div>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save