update doc

pull/483/head
hengyunabc 6 years ago
parent b34c66c1f1
commit 6af96f39e3

@ -92,7 +92,7 @@
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li> <li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>

@ -3,40 +3,40 @@ Advanced Usage
## Basic ## Basic
- help - help - show help info
- cls - clear out the current screen - cls - clear out the current screen
- session - check details of the current session - session - check details of the current session
- [reset](reset.md) - reset all empowered classes - [reset](reset.md) - reset all injected/enhanced classes
- version - print the version of the Arthas attaching to the current target process - version - print the version of the Arthas attaching to the current target process
- quit/exit - exit the current Arthas client without affecting other clients - quit/exit - exit the current Arthas client without affecting other clients
- shutdown - terminate the Arthas server and all clients - shutdown - terminate the Arthas server and all clients
## JVM-related ## JVM
* [dashboard](dashboard.md) - real-time dashboard for the current system * [dashboard](dashboard.md) - real-time dashboard for the current system
* [thread](thread.md) - thread profile * [thread](thread.md) - thread profile
* [jvm](jvm.md) - JVM profile * [jvm](jvm.md) - JVM profile
* [sysprop](sysprop.md) - check or modify JVM system properties * [sysprop](sysprop.md) - check or modify JVM system properties
* **New!** [getstatic](getstatic.md) - check the static properties of some class * **New!** [getstatic](getstatic.md) :clap: - check the static properties of classes
## class/classloader - related ## class/classloader
* [sc](sc.md) - methods' profile of the classes loaded by JVM * [sc](sc.md) - check profiles of the classes loaded by JVM
* [sm](sm.md) - methods' profile of the loaded classes * [sm](sm.md) - check methods' profile
* [dump](dump.md) - dump out the byte code of the loaded class to specified location * [dump](dump.md) - dump out the byte code of the loaded classes to specified location
* [redefine](redefine.md) - load external `*.class` files and re-define the JVM * [redefine](redefine.md) - load external `*.class` files and re-define the JVM-loaded classes
* [jad](jad.md) - de-compile the specified loaded classes * [jad](jad.md) - de-compile the specified loaded classes
* [classloader](classloader.md) - check the inheritance structure, urls, class loading info of class cloader; using classloader to getResource * [classloader](classloader.md) - check the inheritance structure, urls, class loading info of class cloader; using classloader to get the url of the resource e.g. `java/lang/String.class`
## monitor/watch/trace - related ## monitor/watch/trace - related
> **Attention**: commands here are taking advantage of `byte code injection`, which means we are using [AOP](https://en.wikipedia.org/wiki/Aspect-oriented_programming) to monitor and analyze the classes. So when using it for online troubleshooting, you'd better *explicitly specifically* specify the classes and also remember to remove the injected code by `shutdown` or `reset` (for specific classes). > **Attention**: commands here are taking advantage of `byte code injection`, which means we are using [AOP](https://en.wikipedia.org/wiki/Aspect-oriented_programming) to monitor and analyze the classes. So when using it for online troubleshooting, you'd better *explicitly specifically* specify the classes and also remember to remove the injected code by `shutdown` or `reset`.
* [monitor](monitor.md) * [monitor](monitor.md) - monitor the `class-pattern` & `method-pattern` matched methods' invoking traces
* [watch](watch.md) * [watch](watch.md) - watch/monitor methods in data aspect including `return values`, `exceptions` and `parameters`
* [trace](trace.md) - track the call stack trace and collect the time cost for each method call * [trace](trace.md) - track the method calling trace along with the time cost for each call
* [stack](stack.md) - print the call stack trace of the current method * [stack](stack.md) - print the call stack trace of the current method in a persistent way
* [tt](tt.md) - record the arguments and returned value for the methods, history included * [tt](tt.md) - record the arguments and returned value for the methods, history included
## options ## options
@ -48,13 +48,15 @@ Advanced Usage
`pipe` is supported in Arthas, e.g. `sm org.apache.log4j.Logger | grep <init>` `pipe` is supported in Arthas, e.g. `sm org.apache.log4j.Logger | grep <init>`
* grep Commands supported in `pipe`:
* grep - filtering
* plaintext - remove the color * plaintext - remove the color
* wc * wc - line counting
## async in background ## async in background
[async](async.md) will be a great help, when the `incident` seldom occurs and you are `[watch](watch.md)`ing it. [async](async.md) will be a great help, when the `incident` seldom occurs and you are [`watch`](watch.md)ing it.
* jobs - list all jobs * jobs - list all jobs
@ -63,14 +65,9 @@ Advanced Usage
* bg - put the paused job to the background * bg - put the paused job to the background
* tips - a) use `>` to redirect the output; b) use `&` to put the job to the background; c) disconnecting the session will not influence the job (the default life is 1 day) * tips - a) use `>` to redirect the output; b) use `&` to put the job to the background; c) disconnecting the session will not influence the job (the default life is 1 day)
## Web Console
Using websocket to connect Arthas
* [Web Console](web-console.md)
## Others ## Others
* [Web Console](web-console.md) - using websocket to connect Arthas
* [log the output](save-log.md) * [log the output](save-log.md)
* [batch](batch-support.md) * [batch](batch-support.md)
* [how to use ognl](https://github.com/alibaba/arthas/issues/11) * [how to use ognl](https://github.com/alibaba/arthas/issues/11)

@ -0,0 +1,44 @@
Critical Fields in Expressions
==============================
There is a very fundamental class `Advice` for the expressions used in filtering, tracing or monitoring and other aspects in commands.
```java
public class Advice {
private final ClassLoader loader;
private final Class<?> clazz;
private final ArthasMethod method;
private final Object target;
private final Object[] params;
private final Object returnObj;
private final Throwable throwExp;
private final boolean isBefore;
private final boolean isThrow;
private final boolean isReturn;
...
// getter/setter
}
```
|Name|Specification|
|---:|:---|
|loader|class loader of the class|
|clazz|the reference of the class|
|method|the reflective reference of the method|
|target|the instance of the class|
|params|the parameters of the method, which is an array (when there is no argument in the method, it will be an empty array)|
|returnObj|the return value of the method - only when `isReturn==true`, it's a valid result but if the return value is `void` then it will be a `null`|
|throwExp|the exceptions thrown by the method invoking - only when `isThrow==true`, it's a valid thrown exception|
|isBefore|assistant checking flag used in [`before-watching` point](watch.md) and at this very moment: `isBefore==true`, `isThrow==false` and `isReturn==false` since it's before we invoke the method|
|isThrow|assistant checking flag: whether the current method invoking ends with exceptions|
|isReturn|assistant checking flag: whether the method invoking exits normally without exceptions|
F.Y.I
1. all the *fields* mentioned in the table above can be used directly in the `expressions`;
2. if the expressions are [invalid OGNL](https://en.wikipedia.org/wiki/OGNL), the command will be cancelled automatically with hints to correct the expressions;
3. [typical use cases](https://github.com/alibaba/arthas/issues/71);
4. [OGNL official usage guide](https://commons.apache.org/proper/commons-ognl/language-guide.html).

@ -0,0 +1,39 @@
Batch Processing
================
With the help of `Batch Processing`, you can run several commands in one line and get the results.
### Usage
#### Step-1: Create the script
Creating a `test.as` script suffixed with `as` here for consistency (actually any suffix is acceptable).
```
➜ arthas git:(develop) cat /var/tmp/test.as
help
dashboard -b -n 1
session
thread
sc -d org.apache.commons.lang.StringUtils
```
Attention:
* each command takes each independent line;
* `dashboard` command should include `-b` to turn on batch mode and `-n` to ensure the script ends;
* commands as `watch/tt/trace/monitor/stack` should include `-n` option to ensure the script ends;
* [asynchronous](async.md) can also be used as `watch c.t.X test returnObj > &`;
#### Step-2: Run the script
Using `-b` to turn on script mode, and `-f` to run it and you can also *redirect* the output as:
```sh
./as.sh -b -f /var/tmp/test.as 56328 > test.out
```
#### Step-3: Check the outputs
```sh
cat test.out
```

@ -9,17 +9,17 @@ It can be a great help for `ResourceNotFoundException` when you can use command
|Name|Specification| |Name|Specification|
|---:|:---| |---:|:---|
|[l]|count based on the class loader instance| |[l]|list all class loader instances based on thread count|
|[t]|print all the inheritance structure of the class loaders| |[t]|print the inheritance structure of the class loaders|
|[a]|list all the classes loaded by all the class loaders (use it with great caution since the output can be huge)| |[a]|list all the classes loaded by all the class loaders (use it with great caution since the output can be huge)|
|`[c:]`|get the hashcode of the class loader| |[c:]|get the hashcode of the class loader|
|`[c: r:]`|using class loader to search resource| |[c: r:]|using class loader to search resource|
### Usage ### Usage
* categorised by class loader * Categorised by class loader
```s ```sh
$ classloader $ classloader
name numberOfInstances loadedCountTotal name numberOfInstances loadedCountTotal
com.taobao.pandora.service.loader.ModuleClassLoader 29 11659 com.taobao.pandora.service.loader.ModuleClassLoader 29 11659
@ -100,7 +100,7 @@ $ classloader -t
| | +-sun.reflect.DelegatingClassLoader@73f44f24 | | +-sun.reflect.DelegatingClassLoader@73f44f24
``` ```
* Check the real urls of `URLClassLoader` * Check URL of the class loader
```shell ```shell
$ classloader -c 5ffe9775 $ classloader -c 5ffe9775

@ -1,6 +1,19 @@
Commands List All Commands
============= =============
### Basic
* help - check the assistant info for the command
* cls - clear out the current screen area
* session - check the current session profile
* [reset](reset.md) - clear the injected code from the classes (B.T.W when Arthas server closed, all the injected will also be cleared)
* version - the version of the working Arthas
* quit - exit the current Arthas client without affecting other clients
* shutdown - terminate the Arthas server and all clients
* [keymap](keymap.md) - shortcuts for Arthas and also you can define your own
### Advanced
* [dashboard](dashboard.md) * [dashboard](dashboard.md)
* [thread](thread.md) * [thread](thread.md)
* [jvm](jvm.md) * [jvm](jvm.md)
@ -25,13 +38,3 @@ Commands List
* [options](options.md) * [options](options.md)
### Arthas Basic Commands
* help - check the assistant info for the command
* cls - clear out the current screen area
* session - check the current session profile
* [reset](reset.md) - clear the injected code from the classes (B.T.W when Arthas server closed, all the injected will also be cleared)
* version - the version of the working Arthas
* quit - exit the current Arthas client without affecting other clients
* shutdown - terminate the Arthas server and all clients
* [keymap](keymap.md) - shortcuts for Arthas and also you can define your own

@ -8,13 +8,13 @@ Dump the bytecode the loaded classes to a specified directory.
|Name|Specification| |Name|Specification|
|---:|:---| |---:|:---|
|*class-pattern*|pattern for the class name| |*class-pattern*|pattern for the class name|
|`[c:]`|hashcode of the class loader that loaded the class| |[c:]|hashcode of the [class loader](classloader.md) that loaded the class|
|[E]|turn on regx matching while the default is wildcards matching| |[E]|turn on regex matching while the default is wildcard matching|
### Usage ### Usage
```shell ```bash
$ dump -E org\.apache\.commons\.lang\.StringUtils $ dump org.apache.commons.lang.StringUtils
HASHCODE CLASSLOADER LOCATION HASHCODE CLASSLOADER LOCATION
29505d69 +-tddl-client's ModuleClassLoader /Users/zhuyong/middleware/taobao-tomcat/output/build/bin/classdump/com.taobao.pandora 29505d69 +-tddl-client's ModuleClassLoader /Users/zhuyong/middleware/taobao-tomcat/output/build/bin/classdump/com.taobao.pandora
.service.loader.ModuleClassLoader-29505d69/org.apache.commons.lang.StringUtils.class .service.loader.ModuleClassLoader-29505d69/org.apache.commons.lang.StringUtils.class

@ -36,7 +36,7 @@ Arthas is born to solve these issues. You can trouble-shoot your production issu
Contents Contents
-------- --------
English version is on the way, if you would like to contribute, please leave a message [here](https://github.com/alibaba/arthas/issues/51) English version has just been finished. If you would like to make it better, please check [here](https://github.com/alibaba/arthas/issues/51) and submit your PM.
* [Installation](install-detail.md) * [Installation](install-detail.md)
* [Quick start](quick-start.md) * [Quick start](quick-start.md)

@ -6,22 +6,22 @@ De-compile specified loaded classes.
`jad` helps to *de-compile* the byte code in JVM to the source code to assist you to better understand the logic behind. `jad` helps to *de-compile* the byte code in JVM to the source code to assist you to better understand the logic behind.
F.Y.I F.Y.I
* the de-compiled code will be grammatically highlighted for readability in Arthas Console; * the de-compiled code will be grammatically highlighted for readability in Arthas console;
* you have to understand there might be some trivial grammar errors but it won't affect the logic understanding. * there might be some trivial grammar errors but it won't affect the logic understanding.
### Options ### Options
|Name|Specification| |Name|Specification|
|---:|:---| |---:|:---|
|*class-pattern*|pattern for the class name| |*class-pattern*|pattern for the class name|
|`[c:]`|hashcode of the class loader that loaded the class| |[c:]|hashcode of the class loader that loaded the class|
|[E]|turn on regx matching while the default is wildcards matching| |[E]|turn on regex matching while the default is wildcard matching|
### Usage ### Usage
When several class loaders loaded the same class: When several class loaders loaded the same class:
1. `jad` to get the hashcode of the class loader; 1. `jad` to get the hashcode of the class loader;
2. `jad -c <hashcode>` to get the de-compiled class loaded by the class loader. 2. `jad -c <hashcode>` to get the de-compiled class loaded by the specified class loader.
```java ```java
$ jad org.apache.log4j.Logger $ jad org.apache.log4j.Logger
@ -156,3 +156,7 @@ private Map<String, Object> directMetrics(String ip, String[] metrics) {
Affect(row-cnt:1) cost in 1508 ms. Affect(row-cnt:1) cost in 1508 ms.
``` ```
F.Y.I
Inner class is not yet supported, you can just check the *outer* class to further check the inner class.

@ -84,8 +84,14 @@ $ jvm
THREAD COUNT 16 THREAD COUNT 16
DAEMON-COUNT 10 DAEMON-COUNT 10
LIVE-COUNT 18 PEAK-COUNT 18
STARTED-COUNT 19 STARTED-COUNT 19
DEADLOCK-COUNT 0
FILE-DESCRIPTOR
MAX-FILE-DESCRIPTOR-COUNT 10240
OPEN-FILE-DESCRIPTOR-COUNT 648
Affect cost in 2 ms. Affect cost in 2 ms.
``` ```
@ -93,5 +99,12 @@ Affect cost in 2 ms.
* COUNT: the count of active threads * COUNT: the count of active threads
* DAEMON-COUNT: the count of active daemon threads * DAEMON-COUNT: the count of active daemon threads
* LIVE-COUNT: the maximum count of the live threads since JVM starts * PEAK-COUNT: the maximum count of the live threads since JVM starts
* STARTED-COUNT: the total count of the created threads since JVM starts * STARTED-COUNT: the total count of the created threads since JVM starts
* DEADLOCK-COUNT: the count of deadlock threads
### fileDescriptor-related
* MAX-FILE-DESCRIPTOR-COUNTthe count of max file descriptor JVM process can open
* OPEN-FILE-DESCRIPTOR-COUNTthe current count of file descriptor JVM process open

@ -0,0 +1,31 @@
Manual Installation
===================
### Download
Latest `bin.zip `: [![Arthas](https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square "Arthas")](http://search.maven.org/classic/#search%7Cga%7C1%7Cg%3A%22com.taobao.arthas%22%20AND%20a%3A%22arthas-packaging%22)
If the downloading is rather clumsy, try to download from the [repository in AliYun](https://maven.aliyun.com/); the downloading URL template is (remember to fill up the version `3.x.x` template to your needs)
`https://maven.aliyun.com/repository/public/com/taobao/arthas/arthas-packaging/3.x.x/arthas-packaging-3.x.x-bin.zip`
### Unzip
```bash
unzip arthas-packaging-bin.zip
```
### Install
```bash
sudo su admin
rm -rf /home/admin/.arthas/lib/* # remove all the leftover of the old outdated Arthas
cd arthas
./install-local.sh # switch the user based on the owner of the target Java process.
```
### Start
```bash
./as.sh # make sure the old Arthas has been shut down (using command shutdown);
```

@ -1,14 +1,14 @@
monitor monitor
======= =======
Monitor the `class-pattern` & `method-pattern` matched methods invoking traces. Monitor methods calling stack traces.
F.Y.I F.Y.I
1. `monitor` is a persistent command, it never returns until `Ctrl+C` to manually stop it. 1. `monitor` is a persistent command, it never returns until you press `Ctrl+C` to manually stop it;
2. the server runs the tasks in the background; 2. the server runs the jobs in the background;
3. injected code will become invalid automatically once the tasks being terminated; 3. injected monitoring code will become invalid automatically once the monitoring jobs being terminated;
4. in theory, Arthas commands will not change any original behaviors. 4. in theory, Arthas will not change any original behaviors but if it does, please do not hesitate to start an [issue](https://github.com/alibaba/arthas/issues).
### Properties monitored ### Properties monitored
@ -29,8 +29,8 @@ F.Y.I
|---:|:---| |---:|:---|
|*class-pattern*|pattern for the class name| |*class-pattern*|pattern for the class name|
|*method-pattern*|pattern for the method name| |*method-pattern*|pattern for the method name|
|[E]|turn on regx matching while the default is wildcards matching| |[E]|turn on regex matching while the default is wildcard matching|
|`[c:]`|cycle of output with default value: `120 s`| |[c:]|cycle of output with default value: `60 s`|
### Usage ### Usage

@ -1,22 +1,22 @@
options options
=== ===
> Global options ### Global options
| Name | Default Value | Description | |Name| Default Value | Description |
| ------------------ | ----- | ---------------------------------------- | | ------------------------- | ----- | ---------------------------------------- |
| unsafe | false | Enable support for system-level class enhancement; JVM might crash, if you turn on this switch (please use with great caution!) | | unsafe | false | Enable system-level class enhancement; JVM might crash, if you turn it on (use with great caution :exclamation:) |
| dump | false | Enable support for dumping enhanced class to external fileif turned onclass file will be dumped to`/${application dir}/arthas-class-dump/`please see console for specific location | | dump | false | Enable support for dumping enhanced class to external files; if turned on, class file will be dumped to`/${application dir}/arthas-class-dump/`please check console output for specific location |
| batch-re-transform | true | re-transform matched classes in batch | | batch-re-transform | true | re-transform matched classes in batch |
| json-format | false | Enable output in JSON format | | json-format | false | Enable output in JSON format |
| disable-sub-class | false | Disabling child class matchingby default child class will be matched during matching target classif you wish exact matchingyou can turn this off | | disable-sub-class | false | Disabling child class matching: by default child class will be matched while matching target class; if you wish exact matching, you should turn it off |
| debug-for-asm | false | Print ASM related debug message | | debug-for-asm | false | Print ASM-related debug message |
| save-result | false | Enable saving logs for task resultswhen turn to true, all command results will be saved to `/home/admin/logs/arthas/arthas.log` | | save-result | false | Enable saving logs for task results: when true, all command results will be saved to `/home/admin/logs/arthas/arthas.log` |
| job-timeout | 1d | Default time-out time for back-stage tasksif exceed this timetask will be stoppedi.e. 1d, 2h, 3m, 25srepresenting day、hour、minute、second | | job-timeout | 1d | Default timeout for background jobs: jobs will be stopped once timed out (i.e. 1d, 2h, 3m, 25s)|
### Usage ### Usage
For exampleif you wish to save logs for command results, you can use following command: Saving logs for command outputs, you can:
``` ```
$ options save-result true $ options save-result true

@ -56,8 +56,7 @@ public class Demo {
sudo -u admin -EH ./as.sh sudo -u admin -EH ./as.sh
``` ```
2. For more details of the booting script, please refer to [starting arthas](start-arthas.md). 2. For more details of the booting script, please refer to [Start Arthas](start-arthas.md).
3. If you cannot *attach* the target process, please check the logs under `~/logs/arthas` for troubleshooting. 3. If you cannot *attach* the target process, please check the logs under `~/logs/arthas` for troubleshooting.
4. Selecting the target process as: 4. Selecting the target process as:
@ -90,8 +89,8 @@ public class Demo {
version: 3.0.1-RC-SNAPSHOT version: 3.0.1-RC-SNAPSHOT
pid: 13560 pid: 13560
timestamp: 1536656867894 timestamp: 1536656867894
'`'`'`'`'`'`'`'`'`
' $
``` ```
### Windows ### Windows
@ -152,7 +151,7 @@ ts=2018-09-10 17:53:14;result=@Integer[624]
ts=2018-09-10 17:53:15;result=@Integer[625] ts=2018-09-10 17:53:15;result=@Integer[625]
``` ```
[more advanced functions](advanced-use.md) [more advanced usages](advanced-use.md)
## 5. Exit Arthas ## 5. Exit Arthas

@ -1,14 +1,14 @@
redefine redefine
======== ========
Load the external `*.class` files and *re-define* the JVM-loaded classes. Load the external `*.class` files to **re-define** the JVM-loaded classes.
Reference: [Instrumentation#redefineClasses](https://docs.oracle.com/javase/8/docs/api/java/lang/instrument/Instrumentation.html#redefineClasses-java.lang.instrument.ClassDefinition...-) Reference: [Instrumentation#redefineClasses](https://docs.oracle.com/javase/8/docs/api/java/lang/instrument/Instrumentation.html#redefineClasses-java.lang.instrument.ClassDefinition...-)
F.Y.I F.Y.I
1. Re-defined classes cannot be restores any more; 1. Re-defined classes cannot be restores any more;
2. Re-definition can fail (like adding a new field); for more information, please refer to JDK documentation 2. Re-definition can fail (like adding a new field/method); for more information, please refer to JDK documentation
### Options ### Options
@ -21,6 +21,6 @@ F.Y.I
### Usage ### Usage
``` ```
redefine -p /tmp/Test.class redefine -p /tmp/Test.class
redefine -c 327a647b -p /tmp/Test.class /tmp/Test\$Inner.class redefine -c 327a647b -p /tmp/Test.class /tmp/Test$Inner.class
``` ```

@ -0,0 +1,123 @@
Release Notes
=============
### :tada: :tada: [v3.0.4](https://github.com/alibaba/arthas/milestone/1?closed=1) :exclamation:
v2017-11-03
----
* [improvement] add [`getstatic`](getstatic.md)
* [bug] fix Arthas class loader logs loading issues
* [improvement] introduce [OGNL](https://en.wikipedia.org/wiki/OGNL) to customize `classloader` to invoke static methods
* [improvement] optimise `termd` uppercase output performance
* [improvement] `classloader` compile in class loader category by default
* [bug] fix `wc` counting issue
* [improvement] disable certain JDK classes e.g. `Classloader`, `Method`, `Integer` and the lik
* [improvement] quit directly when encountering incorrect [OGNL](https://en.wikipedia.org/wiki/OGNL) expression
* [bug] fix `pipe` issues
* [improvement] optimize command re-direct features using asynchronous log
* [improvement] [`trace`](trace.md) can filter JDK method calls
v2017-09-22
----
* [improvement] improve the error message when starting agent and server fails
* [bug] fix some asynchronous issues
v2017-09-11
----
* [improvement] [`async`](async.md) supported
* [improvement] optimize [`jad`](jad.md) support JDK 8 and inner class
* [bug] fix Chinese encoding issues
v2017-05-11
----
* [improvement] [`tt`](tt.md) investigating/recording level one to avoid too much performance overhea
* [bug] fix Chinese characters can not be presented issue
v2017-05-12
----
* Arthas 3.0 release :confetti_ball:
v2016-12-09
----
* [feature] [`as.sh`](https://github.com/alibaba/arthas/blob/master/bin/as.sh) support `-h` to print help info
* [bug] [#121] fix leftover temp files causing Arthas cannot start issue
* [bug] [#123] fix `attach/shutdown` repeatedly causing Arthas classloader leakage issue
* [improvement] make the help info more readable
* [bug] [#126] fix the documents links issues
* [bug] [#122] fix the [`classloader`](classloader.md) filtering out `sun.reflect.DelegatingClassLoader` issue
* [bug] [#129] fix [`classloader`](classloader.md) presenting structure issues
* [improvement] [#125] make the Arthas log output more readable
* [improvement] [#96] [`sc`](sc.md) and more commands are supporting format as `com/taobao/xxx/TestClass`
* [bug] [#124] fix the negative values of [`trace`](trace.md)
* [improvement] [#128] the output of [`tt`](tt.md) will auto-expand now
* [bug] [#130] providing more meaningful error messages when port conflicts
* [bug] [#98] fix Arthas starting issue: when updating/downloading failed, Arthas will fail to start
* [bug] [#139] fix agent attaching fails under some scenarios issues
* [improvement] [#156] delay `jd-core-java` initialization to avoid Arthas starting failure
* [bug] avoid thread names duplicate issue
* [improvement] [#150] filtering by total time cost in [`trace`](trace.md)
* [bug] fix [`sc`](sc.md) `NPE` issue when searching `SystemClassloader`
* [bug] [#180] fix attach fails issues: attaching succeed at the first time, delete the Arthas installer, re-compile and package => attaching fails
v2016-06-07
----
* [bug] fix NPE when loading `spy` as resource
* [improvement] locating the blocking thread
* [improvement] print out thread in name order
* [improvement] specify the refreshing interval when checking topN busiest threads
v2016-04-08
----
* [feature] specify refreshing interval and execution times in [`dashboard`](dashboard.md)
* [feature] log the command execution result
* [feature] speed up the booting and attaching while the first attaching is even quicker by 100% than before
* [feature] batch supported; script supported
* [feature] interactive mode used in Arthas
* [feature] inheritance relation included in class searching; global option `disable-sub-class` can be used to turn it off
* [feature] colorful and plain text modes both supported
* [improvement] merge `exit` and `quit` commands
* [improvement] help info enclosed with wiki links
* [improvement] optimize [`watch`](watch.md) using flow for better UX
* [improvement] add examples to [`thread`](thread.md)
* [improvement] auto-completion ignores character case
* [improvement] make the UI more beautiful/friendly
* [bug] fix [`trace`](trace.md) printing too much encountering loop issues
* [bug] fix [`trace`](trace.md) node twisting issues when method throwing exceptions
* [bug] fix injected/enhanced `BootstrapClassLoader` cannot locate `spy` issues
v2016-03-07
----
* [feature] checking the topN thread and related stack traces
* [bug] fix Arthas starting failure in OpenJdk issues (requiring to reinstall [as.sh](https://github.com/alibaba/arthas/blob/master/bin/as.sh))
* [improvement] optimize UX
v2016-01-18
----
* [improvement] optimise [`jad`](jad.md); dump memory byte array in real time; using `jd-core-java` to de-compile; line number presented;
* [bug] fix checking/re-producing issues when [`tt`](tt.md) is watching thread-context related methods invoking
v2016-01-08
----
* [bug] jad NPE
* [bug] watch/monitor NPE
* [bug] wrong escaping issues
* [bug] wrong statistics
* [bug] [`sc`](sc.md) checking internal structure issues
v2015-12-29
---
* Arthas 2.0 Beta :boom:

@ -0,0 +1,37 @@
Log command outputs
===================
Log command outputs for later analysis, turned off by default.
To turn it on, using [options](options.md) as:
```sh
$ options save-result true
NAME BEFORE-VALUE AFTER-VALUE
----------------------------------------
save-result false true
Affect(row-cnt:1) cost in 3 ms.
```
F.Y.I
1. logging file lies in: `{user.home}/logs/arthas-cache/result.log`;
2. remember to clean up the file to save disk space.
### Asynchronous log
:notes: :notes:
With the latest Arthas, you can log the outputs asynchronously in the background:
```sh
$ trace Test t >> &
job id : 2
cache location : /Users/zhuyong/logs/arthas-cache/28198/2
```
F.Y.I
1. `quit/exit` or `Ctrl+C` will not affect the asynchronous jobs :sparkles:;
2. default timeout for the background job is 1 day (you can set it via [options](options.md));
3. outputs will be save to the `cache location` now (no matter what `save-result` is - not `~/logs/arthas-cache/result.log` any more).

@ -3,7 +3,7 @@ sc
Check the profiles of the loaded classes. Check the profiles of the loaded classes.
Abbreviated from “Search-Class”; with the help of this command, you can search out all the loaded classes in JVM. Supported options are: `[d]`、`[E]`、`[f]` and `[x:]`. Abbreviated from *Search-Class*; with the help of this command, you can search out all the loaded classes in JVM. Supported options are: `[d]`、`[E]`、`[f]` and `[x:]`.
Options Options
------- -------
@ -16,12 +16,12 @@ Options
|*method-pattern*|pattern for the method name| |*method-pattern*|pattern for the method name|
|[d]|print the details of the current class including the source file, class declaration, the class loaders and the like.<br/>F.Y.I if a class is loaded by several class loaders, then the class will be printed several times| |[d]|print the details of the current class including the source file, class declaration, the class loaders and the like.<br/>F.Y.I if a class is loaded by several class loaders, then the class will be printed several times|
|[E]|turn on regx matching while the default is wildcards matching| |[E]|turn on regx matching while the default is wildcards matching|
|[f]|print the fields info of the current class, which should be used along with `-d`| |[f]|print the fields info of the current class, which ***must*** be used with `-d`|
|[x:]|the depth to print the static fields, whose default is `0` - directly invoke the `toString()`| |[x:]|the depth to print the static fields, whose default is `0` - directly invoke the `toString()`|
Tip: Tip:
1. *class-patten* supports full qualified class name (e.g. com.taobao.test.AAA and com/taobao/test/AAA) 1. *class-patten* supports full qualified class name (e.g. com.taobao.test.AAA and com/taobao/test/AAA)
2. `sc` turned on the `sub-class` matching in default mode, if you do want to hide the `sub-class` please just turn it off via `options disable-sub-class true`. 2. `sc` turned on the `sub-class` matching in default mode; if you do want to hide `sub-class`, you can just turn it off with [options](options.md) as `options disable-sub-class true`.
### Usage ### Usage

@ -3,7 +3,7 @@ sm
Check the method profile of the loaded classes; Check the method profile of the loaded classes;
Abbreviated from “Search-Method”, with which you can search out all methods profiles of the loaded classes. Abbreviated from *Search-Method*, with which you can check all methods profiles of the loaded classes.
F.Y.I F.Y.I
`sm` only shows the methods declared in the current class; methods declared in ancestors will not be presented. `sm` only shows the methods declared in the current class; methods declared in ancestors will not be presented.
@ -15,7 +15,7 @@ F.Y.I
|*class-pattern*|pattern for class name| |*class-pattern*|pattern for class name|
|*method-pattern*|pattern for method name| |*method-pattern*|pattern for method name|
|[d]|print the details of the method| |[d]|print the details of the method|
|[E]|turn the regex matching on while the default mode is wildcards matching| |[E]|turn on regex matching while the default mode is wildcard matching|
### Usage ### Usage

@ -11,16 +11,16 @@ Most of the time, we know the method being invoked but not always we know **HOW
|---:|:---| |---:|:---|
|*class-pattern*|pattern for the class name| |*class-pattern*|pattern for the class name|
|*method-pattern*|pattern for the method name| |*method-pattern*|pattern for the method name|
|*condition-express*|condition expression| |*condition-expression*|condition expression|
|[E]|turn on regx matching while the default is wildcards matching| |[E]|turn on regex matching while the default is wildcard matching|
|`[n:]`|calling times| |[n:]|calling times|
F.Y.I F.Y.I
1. any valid OGNL expression as `"{params,returnObj}"` supported; 1. any valid OGNL expression as `"{params,returnObj}"` supported;
2. filter by time cost as `trace *StringUtils isBlank '$cost>100'`; calling stack with only time cost higher than `100ms` will be printed. 2. filter by time cost as `trace *StringUtils isBlank '#cost>100'`; calling stack with only time cost higher than `100ms` will be printed.
Attention: Attention:
1. `$cost` can be used in `watch/stack/trace`; 1. `#cost` can be used in `watch/stack/trace`;
2. using `#cost` in Arthas 3.0 instead of `$cost`. 2. using `#cost` in Arthas 3.0 instead of `$cost`.
@ -32,7 +32,7 @@ Advanced:
### Usage ### Usage
The quoting rules: if there are quotes within the expression, use another type of quotes to quote the whole expression. The quoting rules: if there are quotes within the expression, use another type of quotes to quote the whole expression (single `''` or double `""` quotes).
``` ```
$ stack com.alibaba.sample.petstore.dal.dao.ProductDao getProductById 'params[0]=="K9-BD-01"' $ stack com.alibaba.sample.petstore.dal.dao.ProductDao getProductById 'params[0]=="K9-BD-01"'
@ -68,7 +68,7 @@ thread_name="http-bio-8080-exec-2" thread_id=0x48;is_daemon=true;priority=5;
at com.alibaba.citrus.service.pipeline.impl.PipelineImpl$PipelineContextImpl.invoke(PipelineImpl.java:210) at com.alibaba.citrus.service.pipeline.impl.PipelineImpl$PipelineContextImpl.invoke(PipelineImpl.java:210)
at com.alibaba.citrus.service.pipeline.impl.valve.ChooseValve.invoke(ChooseValve.java:98) at com.alibaba.citrus.service.pipeline.impl.valve.ChooseValve.invoke(ChooseValve.java:98)
at com.alibaba.citrus.service.pipeline.impl.PipelineImpl$PipelineContextImpl.invokeNext(PipelineImpl.java:157) at com.alibaba.citrus.service.pipeline.impl.PipelineImpl$PipelineContextImpl.invokeNext(PipelineImpl.java:157)
...... ...
``` ```
Filtering by time cost: Filtering by time cost:
@ -110,5 +110,5 @@ thread_name=http-nio-8080-exec-10;id=31;is_daemon=true;priority=5;TCCL=com.taoba
at com.alibaba.citrus.webx.impl.WebxControllerImpl.service(WebxControllerImpl.java:43) at com.alibaba.citrus.webx.impl.WebxControllerImpl.service(WebxControllerImpl.java:43)
at com.alibaba.citrus.webx.impl.WebxRootControllerImpl.handleRequest(WebxRootControllerImpl.java:53) at com.alibaba.citrus.webx.impl.WebxRootControllerImpl.handleRequest(WebxRootControllerImpl.java:53)
at com.alibaba.citrus.webx.support.AbstractWebxRootController.service(AbstractWebxRootController.java:165) at com.alibaba.citrus.webx.support.AbstractWebxRootController.service(AbstractWebxRootController.java:165)
......... ...
``` ```

@ -1,7 +1,7 @@
trace trace
===== =====
Track the `class-pattern` & `method-pattern` matched method calling trace and print the time cost in each call. Track methods calling stack trace and print the time cost in each call.
### Parameters ### Parameters
@ -11,19 +11,18 @@ Track the `class-pattern` & `method-pattern` matched method calling trace and pr
|*method-pattern*|pattern for the method name| |*method-pattern*|pattern for the method name|
|*condition-express*|condition expression| |*condition-express*|condition expression|
|[E]|turn on regx matching while the default is wildcards matching| |[E]|turn on regx matching while the default is wildcards matching|
|`[n:]`|calling times| |[n:]|calling times|
|`#cost`|time cost| |#cost|time cost|
F.Y.I F.Y.I
1. any valid OGNL expression as `"{params,returnObj}"` supported; 1. any valid OGNL expression as `"{params,returnObj}"` supported;
2. filter by time cost as `trace *StringUtils isBlank '$cost>100'`; calling stack with only time cost higher than `100ms` will be printed. 2. filter by time cost as `trace *StringUtils isBlank '#cost>100'`; calling stack with only time cost higher than `100ms` will be printed.
Attention: Attention:
1. `$cost` can be used in `watch/stack/trace`; 1. `#cost` can be used in `watch/stack/trace`;
2. using `#cost` in Arthas 3.0 instead of `$cost`. 2. using `#cost` in Arthas 3.0 instead of `$cost`.
3. `trace` can help to locate the performance lurking issue but only `level-one` method invoking considered. 3. `trace` can help to locate the performance lurking issue but only `level-one` method invoking considered.
Advanced: Advanced:
* [Critical fields in expression](advice-class.md) * [Critical fields in expression](advice-class.md)
* [Special usage](https://github.com/alibaba/arthas/issues/71) * [Special usage](https://github.com/alibaba/arthas/issues/71)
@ -101,8 +100,8 @@ trace com.alibaba.sample.petstore.web.store.module.screen.ItemList execute #cost
Only the calling trace of the time cost higher than `4ms`presented now. Only the calling trace of the time cost higher than `4ms`presented now.
F.Y.I F.Y.I
1. just like JProfile and the like commercial software, you can `trace` down the specified method calling in Arthas; 1. like JProfile and other similar commercial software, you can `trace` down the specified method calling stack with time cost in Arthas;
2. there will be some overhead using `trace` but not much; 2. there will be some overhead using `trace` but not much;
3. the time cost is an instructive clue for troubleshooting, which means it's not that accurate ignoring the cost it itself causes; the deeper or more the call is, the accuracy is becoming worse; 3. the time cost is an instructive clue for troubleshooting, which means it's not that accurate ignoring the cost it itself causes; the deeper or more the call is, the worse accuracy the time cost will be;
4. `[0,0,0ms,11]xxx:yyy() [throws Exception]`the same method calling aggregated into one line here while `throws Exception` indicates there is an exception. 4. `[0,0,0ms,11]xxx:yyy() [throws Exception]`the same method calling aggregated into one line here while `throws Exception` indicates there is an exception.

@ -1,13 +1,13 @@
tt tt
== ==
Check the parameters, return values and exceptions of the methods at different times. Check the `parameters`, `return values` and `exceptions` of the methods at different times.
`watch` is a powerful command but due to its feasibility and complexity, it's quite hard to locate the issue effectively. `watch` is a powerful command but due to its feasibility and complexity, it's quite hard to locate the issue effectively.
In such difficulties, `tt` comes into play. In such difficulties, `tt` comes into play.
With the help of `tt` (abbreviated from *TimeTunnel*), you can check the contexts of the methods at different times. With the help of `tt` (*TimeTunnel*), you can check the contexts of the methods at different times in execution history.
### Usage ### Usage
@ -37,7 +37,7 @@ Let's record the whole calling contexts:
- `-n 3` - `-n 3`
limit the number of the records (avoid overflow for too many records; with `-n` option, Arthas can automatically stop recording once the records reach the limit) limit the number of the records (avoid overflow for too many records; with `-n` option, Arthas can automatically stop recording once the records reach the specified limit)
#### Property #### Property
@ -46,8 +46,8 @@ Let's record the whole calling contexts:
|INDEX|the index for each call based on time| |INDEX|the index for each call based on time|
|TIMESTAMP|time to invoke the method| |TIMESTAMP|time to invoke the method|
|COST(ms)|time cost of the method call| |COST(ms)|time cost of the method call|
|IS-RET|end with normal return| |IS-RET|whether method exits with normal return|
|IS-EXP|end with exceptions| |IS-EXP|whether method failed with exceptions|
|OBJECT|`hashCode()` of the object invoking the method| |OBJECT|`hashCode()` of the object invoking the method|
|CLASS|class name of the object invoking the method| |CLASS|class name of the object invoking the method|
|METHOD|method being invoked| |METHOD|method being invoked|
@ -55,7 +55,7 @@ Let's record the whole calling contexts:
#### Condition expression #### Condition expression
Tips: Tips:
1. `tt -t *Test print params[0].length==1` with different amount of parameters; 1. `tt -t *Test print params[0].length==1` with different amounts of parameters;
2. `tt -t *Test print 'params[1] instanceof Integer'` with different types of parameters; 2. `tt -t *Test print 'params[1] instanceof Integer'` with different types of parameters;
3. `tt -t *Test print params[0].mobile=="13989838402"` with specified parameter. 3. `tt -t *Test print params[0].mobile=="13989838402"` with specified parameter.
@ -67,7 +67,7 @@ Advanced:
### Searching for records ### Searching for records
#### A specified time range #### All the recorded
``` ```
$ tt -l $ tt -l
@ -147,7 +147,7 @@ $
### Re-produce ### Re-produce
Since Arthas stores the context of the call, you can even re-produce the method calling after some modifications with extra option `-p`. Since Arthas stores the context of the call, you can even *replay* the method calling afterwards with extra option `-p` to re-produce the issue for advanced troubleshooting.
``` ```
$ tt -i 1003 -p $ tt -i 1003 -p
@ -189,6 +189,6 @@ $
``` ```
F.Y.I F.Y.I
1. the calling stack is little different using Arthas now instead of the original method; 1. the calling stack is little different using Arthas now unlike the original;
2. **Loss** of the thread local variables will be a fact since there is no way for Arthas to record the thread local info. 2. **Loss** of the thread local variables will be a undeniable fact since there is no way for Arthas to record the thread local info (*If you find one, please share with us in [issues tracker](https://github.com/alibaba/arthas/issues)*).
3. **Potential** modifications of objects can happen since only a reference will be recorded by Arthas while later process might modify objects without Arthas's watch. 3. **Potential** modifications of objects can happen since only a reference will be recorded while later operations might modify objects without Arthas's watch.

@ -1,38 +1,38 @@
watch watch
===== =====
Monitor the methods in data aspect including `return value`, `exceptions` and `parameters`. Monitor methods in data aspect including `return values`, `exceptions` and `parameters`.
With the help of [OGNL](https://en.wikipedia.org/wiki/OGNL), you can easily check the details of the variables. With the help of [OGNL](https://en.wikipedia.org/wiki/OGNL), you can easily check the details of variables when methods being invoked.
### Parameters & Options ### Parameters & Options
There are four different usage scenarios for `watch` command, which makes it the most complicated command in Arthas. There are four different scenarios for `watch` command, which makes it rather complicated.
|Name|Specification| |Name|Specification|
|---:|:---| |---:|:---|
|*class-pattern*|pattern for the class name| |*class-pattern*|pattern for the class name|
|*method-pattern*|pattern for the method name| |*method-pattern*|pattern for the method name|
|*express*|expression to monitor| |*expression*|expression to monitor|
|*condition-express*|condition expression| |*condition-expression*|condition expression to filter|
|[b]|before invoking| |[b]|before method being invoked|
|[e]|encountering exceptions| |[e]|when method encountering exceptions|
|[s]|returned normally| |[s]|when method exits normally|
|[f]|returned normally and abnormally| |[f]|when method exits (either succeed or fail with exceptions)|
|[E]|turn on regx matching while the default is wildcards matching| |[E]|turn on regex matching while the default is wildcard matching|
|[x:]|the depth to print the specified property with default value: 1| |[x:]|the depth to print the specified property with default value: 1|
F.Y.I F.Y.I
1. any valid OGNL expression as `"{params,returnObj}"` supported 1. any valid OGNL expression as `"{params,returnObj}"` supported
2. there are four *watching* points: `-b`, `-e`, `-s` and `-f` (the first three are off in default while `-f` on); 2. there are four *watching* points: `-b`, `-e`, `-s` and `-f` (the first three are off in default while `-f` on);
3. at the *watching* point, Arthas will use the `expression` to calculate the values and print them out; 3. at the *watching* point, Arthas will use the *expression* to evaluate the variables and print them out;
4. `in-parameters` and `out-parameters` are different since they can be modified; `params` stands for `in-parameters` in `-b`while `out-parameters` in other *watching* points; 4. `in parameters` and `out parameters` are different since they can be modified within the invoked methods; `params` stands for `in parameters` in `-b`while `out parameters` in other *watching* points;
5. there is no `return value` and `exceptions` when using `-b`. 5. there are no `return values` and `exceptions` when using `-b`.
Advanced: Advanced:
* [Critical fields in expression](advice-class.md) * [Critical fields in *expression*](advice-class.md)
* [Special usage](https://github.com/alibaba/arthas/issues/71) * [Special usages](https://github.com/alibaba/arthas/issues/71)
* [OGNL official guide](https://commons.apache.org/proper/commons-ognl/language-guide.html) * [OGNL official guide](https://commons.apache.org/proper/commons-ognl/language-guide.html)
### Usage ### Usage
@ -57,7 +57,7 @@ A demo:
return list.size(); return list.size();
} }
``` ```
#### Check the `out-parameters`and `return value` #### Check the `out parameters` and `return value`
```shell ```shell
$ watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add "{params,returnObj}" -x 2 $ watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add "{params,returnObj}" -x 2
@ -73,7 +73,7 @@ Affect(class-cnt:1 , method-cnt:1) cost in 44 ms.
] ]
``` ```
#### Check `in-parameters` #### Check `in parameters`
```shell ```shell
$ watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add "{params,returnObj}" -x 2 -b $ watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add "{params,returnObj}" -x 2 -b
@ -89,7 +89,7 @@ Affect(class-cnt:1 , method-cnt:1) cost in 48 ms.
] ]
``` ```
Compared to the previous *check*: Compared to the previous *check*, there are two differences:
1. size of `params[0]` is `2` instead of `4`; 1. size of `params[0]` is `2` instead of `4`;
2. `return value` is `null` since it's `-b`. 2. `return value` is `null` since it's `-b`.
@ -122,7 +122,7 @@ F.Y.I
1. the first block of output is the *before watching* point; 1. the first block of output is the *before watching* point;
2. the order of the output determined by the *watching* order itself (nothing to do with the order of the options `-b -s`). 2. the order of the output determined by the *watching* order itself (nothing to do with the order of the options `-b -s`).
#### Using `-x` to check more details #### Use `-x` to check more details
```shell ```shell
$ watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add "{params,returnObj}" -x 3 $ watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add "{params,returnObj}" -x 3
@ -150,7 +150,7 @@ Affect(class-cnt:1 , method-cnt:1) cost in 59 ms.
] ]
``` ```
#### Using condition expressions to locate specific call #### Use condition expressions to locate specific call
```shell ```shell
$ watch com.alibaba.sample.petstore.biz.impl.UserManagerImpl testAdd "{params, returnObj}" "params[0].equals('aaa')" -x 2 $ watch com.alibaba.sample.petstore.biz.impl.UserManagerImpl testAdd "{params, returnObj}" "params[0].equals('aaa')" -x 2

@ -31,7 +31,7 @@
<link rel="stylesheet" href="_static/overrides.css" type="text/css" /> <link rel="stylesheet" href="_static/overrides.css" type="text/css" />
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
<link rel="next" title="Commands List" href="commands.html" /> <link rel="next" title="All Commands" href="commands.html" />
<link rel="prev" title="Quick Start" href="quick-start.html" /> <link rel="prev" title="Quick Start" href="quick-start.html" />
<script src="_static/center_page.js"></script> <script src="_static/center_page.js"></script>
@ -93,27 +93,18 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Advanced usage</a><ul> <li class="toctree-l1 current"><a class="current reference internal" href="#">Advanced usage</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#basic">Basic</a></li> <li class="toctree-l2"><a class="reference internal" href="#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="#jvm-related">JVM-related</a></li> <li class="toctree-l2"><a class="reference internal" href="#jvm">JVM</a></li>
<li class="toctree-l2"><a class="reference internal" href="#class-classloader-related">class/classloader - related</a></li> <li class="toctree-l2"><a class="reference internal" href="#class-classloader">class/classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="#monitor-watch-trace-related">monitor/watch/trace - related</a></li> <li class="toctree-l2"><a class="reference internal" href="#monitor-watch-trace-related">monitor/watch/trace - related</a></li>
<li class="toctree-l2"><a class="reference internal" href="#options">options</a></li> <li class="toctree-l2"><a class="reference internal" href="#options">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="#pipe">pipe</a></li> <li class="toctree-l2"><a class="reference internal" href="#pipe">pipe</a></li>
<li class="toctree-l2"><a class="reference internal" href="#async-in-background">async in background</a></li> <li class="toctree-l2"><a class="reference internal" href="#async-in-background">async in background</a></li>
<li class="toctree-l2"><a class="reference internal" href="#web-console">Web Console</a><ul> <li class="toctree-l2"><a class="reference internal" href="#others">Others</a></li>
<li class="toctree-l3"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/web-console.md">Web Console</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#others">Others</a><ul>
<li class="toctree-l3"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/save-log.md">log the output</a></li>
<li class="toctree-l3"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/batch-support.md">batch</a></li>
<li class="toctree-l3"><a class="reference external" href="https://github.com/alibaba/arthas/issues/11">how to use ognl</a></li>
</ul>
</li>
</ul> </ul>
</li> </li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li> <li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -188,45 +179,45 @@
<div class="section" id="basic"> <div class="section" id="basic">
<span id="basic"></span><h2>Basic<a class="headerlink" href="#basic" title="Permalink to this headline"></a></h2> <span id="basic"></span><h2>Basic<a class="headerlink" href="#basic" title="Permalink to this headline"></a></h2>
<ul class="simple"> <ul class="simple">
<li>help</li> <li>help - show help info</li>
<li>cls - clear out the current screen</li> <li>cls - clear out the current screen</li>
<li>session - check details of the current session</li> <li>session - check details of the current session</li>
<li><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/reset.md">reset</a> - reset all empowered classes</li> <li><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/reset.md">reset</a> - reset all injected/enhanced classes</li>
<li>version - print the version of the Arthas attaching to the current target process</li> <li>version - print the version of the Arthas attaching to the current target process</li>
<li>quit/exit - exit the current Arthas client without affecting other clients</li> <li>quit/exit - exit the current Arthas client without affecting other clients</li>
<li>shutdown - terminate the Arthas server and all clients</li> <li>shutdown - terminate the Arthas server and all clients</li>
</ul> </ul>
</div> </div>
<div class="section" id="jvm-related"> <div class="section" id="jvm">
<span id="jvm-related"></span><h2>JVM-related<a class="headerlink" href="#jvm-related" title="Permalink to this headline"></a></h2> <span id="jvm"></span><h2>JVM<a class="headerlink" href="#jvm" title="Permalink to this headline"></a></h2>
<ul class="simple"> <ul class="simple">
<li><a class="reference internal" href="dashboard.html"><span class="doc">dashboard</span></a> - real-time dashboard for the current system</li> <li><a class="reference internal" href="dashboard.html"><span class="doc">dashboard</span></a> - real-time dashboard for the current system</li>
<li><a class="reference internal" href="thread.html"><span class="doc">thread</span></a> - thread profile</li> <li><a class="reference internal" href="thread.html"><span class="doc">thread</span></a> - thread profile</li>
<li><a class="reference internal" href="jvm.html"><span class="doc">jvm</span></a> - JVM profile</li> <li><a class="reference internal" href="jvm.html"><span class="doc">jvm</span></a> - JVM profile</li>
<li><a class="reference internal" href="sysprop.html"><span class="doc">sysprop</span></a> - check or modify JVM system properties</li> <li><a class="reference internal" href="sysprop.html"><span class="doc">sysprop</span></a> - check or modify JVM system properties</li>
<li><strong>New!</strong> <a class="reference internal" href="getstatic.html"><span class="doc">getstatic</span></a> - check the static properties of some class</li> <li><strong>New!</strong> <a class="reference internal" href="getstatic.html"><span class="doc">getstatic</span></a> :clap: - check the static properties of classes</li>
</ul> </ul>
</div> </div>
<div class="section" id="class-classloader-related"> <div class="section" id="class-classloader">
<span id="class-classloader-related"></span><h2>class/classloader - related<a class="headerlink" href="#class-classloader-related" title="Permalink to this headline"></a></h2> <span id="class-classloader"></span><h2>class/classloader<a class="headerlink" href="#class-classloader" title="Permalink to this headline"></a></h2>
<ul class="simple"> <ul class="simple">
<li><a class="reference internal" href="sc.html"><span class="doc">sc</span></a> - methods profile of the classes loaded by JVM</li> <li><a class="reference internal" href="sc.html"><span class="doc">sc</span></a> - check profiles of the classes loaded by JVM</li>
<li><a class="reference internal" href="sm.html"><span class="doc">sm</span></a> - methods profile of the loaded classes</li> <li><a class="reference internal" href="sm.html"><span class="doc">sm</span></a> - check methods profile</li>
<li><a class="reference internal" href="dump.html"><span class="doc">dump</span></a> - dump out the byte code of the loaded class to specified location</li> <li><a class="reference internal" href="dump.html"><span class="doc">dump</span></a> - dump out the byte code of the loaded classes to specified location</li>
<li><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 the JVM</li> <li><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 the JVM-loaded classes</li>
<li><a class="reference internal" href="jad.html"><span class="doc">jad</span></a> - de-compile the specified loaded classes</li> <li><a class="reference internal" href="jad.html"><span class="doc">jad</span></a> - de-compile the specified loaded classes</li>
<li><a class="reference internal" href="classloader.html"><span class="doc">classloader</span></a> - check the inheritance structure, urls, class loading info of class cloader; using classloader to getResource</li> <li><a class="reference internal" href="classloader.html"><span class="doc">classloader</span></a> - check the inheritance structure, urls, class loading info of class cloader; 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></li>
</ul> </ul>
</div> </div>
<div class="section" id="monitor-watch-trace-related"> <div class="section" id="monitor-watch-trace-related">
<span id="monitor-watch-trace-related"></span><h2>monitor/watch/trace - related<a class="headerlink" href="#monitor-watch-trace-related" title="Permalink to this headline"></a></h2> <span id="monitor-watch-trace-related"></span><h2>monitor/watch/trace - related<a class="headerlink" href="#monitor-watch-trace-related" title="Permalink to this headline"></a></h2>
<blockquote> <blockquote>
<div><strong>Attention</strong>: commands here are taking advantage of <code class="docutils literal notranslate"><span class="pre">byte</span> <span class="pre">code</span> <span class="pre">injection</span></code>, which means we are using <a class="reference external" href="https://en.wikipedia.org/wiki/Aspect-oriented_programming">AOP</a> to monitor and analyze the classes. So when using it for online troubleshooting, youd better <em>explicitly specifically</em> specify the classes and also remember to remove the injected code by <code class="docutils literal notranslate"><span class="pre">shutdown</span></code> or <code class="docutils literal notranslate"><span class="pre">reset</span></code> (for specific classes).</div></blockquote> <div><strong>Attention</strong>: commands here are taking advantage of <code class="docutils literal notranslate"><span class="pre">byte</span> <span class="pre">code</span> <span class="pre">injection</span></code>, which means we are using <a class="reference external" href="https://en.wikipedia.org/wiki/Aspect-oriented_programming">AOP</a> to monitor and analyze the classes. So when using it for online troubleshooting, youd better <em>explicitly specifically</em> specify the classes and also remember to remove the injected code by <code class="docutils literal notranslate"><span class="pre">shutdown</span></code> or <code class="docutils literal notranslate"><span class="pre">reset</span></code>.</div></blockquote>
<ul class="simple"> <ul class="simple">
<li><a class="reference internal" href="monitor.html"><span class="doc">monitor</span></a></li> <li><a class="reference internal" href="monitor.html"><span class="doc">monitor</span></a> - monitor the <code class="docutils literal notranslate"><span class="pre">class-pattern</span></code> &amp; <code class="docutils literal notranslate"><span class="pre">method-pattern</span></code> matched methods invoking traces</li>
<li><a class="reference internal" href="watch.html"><span class="doc">watch</span></a></li> <li><a class="reference internal" href="watch.html"><span class="doc">watch</span></a> - watch/monitor methods in data aspect including <code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">values</span></code>, <code class="docutils literal notranslate"><span class="pre">exceptions</span></code> and <code class="docutils literal notranslate"><span class="pre">parameters</span></code></li>
<li><a class="reference internal" href="trace.html"><span class="doc">trace</span></a> - track the call stack trace and collect the time cost for each method call</li> <li><a class="reference internal" href="trace.html"><span class="doc">trace</span></a> - track the method calling trace along with the time cost for each call</li>
<li><a class="reference internal" href="stack.html"><span class="doc">stack</span></a> - print the call stack trace of the current method</li> <li><a class="reference internal" href="stack.html"><span class="doc">stack</span></a> - print the call stack trace of the current method in a persistent way</li>
<li><a class="reference internal" href="tt.html"><span class="doc">tt</span></a> - record the arguments and returned value for the methods, history included</li> <li><a class="reference internal" href="tt.html"><span class="doc">tt</span></a> - record the arguments and returned value for the methods, history included</li>
</ul> </ul>
</div> </div>
@ -239,15 +230,16 @@
<div class="section" id="pipe"> <div class="section" id="pipe">
<span id="pipe"></span><h2>pipe<a class="headerlink" href="#pipe" title="Permalink to this headline"></a></h2> <span id="pipe"></span><h2>pipe<a class="headerlink" href="#pipe" title="Permalink to this headline"></a></h2>
<p><code class="docutils literal notranslate"><span class="pre">pipe</span></code> is supported in Arthas, e.g. <code class="docutils literal notranslate"><span class="pre">sm</span> <span class="pre">org.apache.log4j.Logger</span> <span class="pre">|</span> <span class="pre">grep</span> <span class="pre">&lt;init&gt;</span></code></p> <p><code class="docutils literal notranslate"><span class="pre">pipe</span></code> is supported in Arthas, e.g. <code class="docutils literal notranslate"><span class="pre">sm</span> <span class="pre">org.apache.log4j.Logger</span> <span class="pre">|</span> <span class="pre">grep</span> <span class="pre">&lt;init&gt;</span></code></p>
<p>Commands supported in <code class="docutils literal notranslate"><span class="pre">pipe</span></code>:</p>
<ul class="simple"> <ul class="simple">
<li>grep</li> <li>grep - filtering</li>
<li>plaintext - remove the color</li> <li>plaintext - remove the color</li>
<li>wc</li> <li>wc - line counting</li>
</ul> </ul>
</div> </div>
<div class="section" id="async-in-background"> <div class="section" id="async-in-background">
<span id="async-in-background"></span><h2>async in background<a class="headerlink" href="#async-in-background" title="Permalink to this headline"></a></h2> <span id="async-in-background"></span><h2>async in background<a class="headerlink" href="#async-in-background" title="Permalink to this headline"></a></h2>
<p><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/async.md">async</a> will be a great help, when the <code class="docutils literal notranslate"><span class="pre">incident</span></code> seldom occurs and you are <code class="docutils literal notranslate"><span class="pre">[watch](watch.md)</span></code>ing it.</p> <p><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/async.md">async</a> will be a great help, when the <code class="docutils literal notranslate"><span class="pre">incident</span></code> seldom occurs and you are <a class="reference external" href="watch.md"><code class="docutils literal notranslate"><span class="pre">watch</span></code></a>ing it.</p>
<ul class="simple"> <ul class="simple">
<li>jobs - list all jobs</li> <li>jobs - list all jobs</li>
<li>kill - forcibly terminate the job</li> <li>kill - forcibly terminate the job</li>
@ -256,25 +248,15 @@
<li>tips - a) use <code class="docutils literal notranslate"><span class="pre">&gt;</span></code> to redirect the output; b) use <code class="docutils literal notranslate"><span class="pre">&amp;</span></code> to put the job to the background; c) disconnecting the session will not influence the job (the default life is 1 day)</li> <li>tips - a) use <code class="docutils literal notranslate"><span class="pre">&gt;</span></code> to redirect the output; b) use <code class="docutils literal notranslate"><span class="pre">&amp;</span></code> to put the job to the background; c) disconnecting the session will not influence the job (the default life is 1 day)</li>
</ul> </ul>
</div> </div>
<div class="section" id="web-console">
<span id="web-console"></span><h2>Web Console<a class="headerlink" href="#web-console" title="Permalink to this headline"></a></h2>
<p>Using websocket to connect Arthas</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/web-console.md">Web Console</a></li>
</ul>
</div>
</div>
<div class="section" id="others"> <div class="section" id="others">
<span id="others"></span><h2>Others<a class="headerlink" href="#others" title="Permalink to this headline"></a></h2> <span id="others"></span><h2>Others<a class="headerlink" href="#others" title="Permalink to this headline"></a></h2>
<div class="toctree-wrapper compound"> <ul class="simple">
<ul> <li><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/web-console.md">Web Console</a> - using websocket to connect Arthas</li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/save-log.md">log the output</a></li> <li><a class="reference internal" href="save-log.html"><span class="doc">log the output</span></a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/batch-support.md">batch</a></li> <li><a class="reference internal" href="batch-support.html"><span class="doc">batch</span></a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues/11">how to use ognl</a></li> <li><a class="reference external" href="https://github.com/alibaba/arthas/issues/11">how to use ognl</a></li>
</ul> </ul>
</div> </div>
</div>
</div> </div>
@ -285,7 +267,7 @@
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="commands.html" class="btn btn-neutral float-right" title="Commands List" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> <a href="commands.html" class="btn btn-neutral float-right" title="All Commands" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="quick-start.html" class="btn btn-neutral" title="Quick Start" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> <a href="quick-start.html" class="btn btn-neutral" title="Quick Start" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>

@ -0,0 +1,361 @@
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Critical Fields in Expressions &mdash; Arthas 3.0.5-SNAPSHOT documentation</title>
<link rel="shortcut icon" href="_static/favicon.ico"/>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<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="trace" href="trace.html" />
<link rel="prev" title="watch" href="watch.html" />
<script src="_static/center_page.js"></script>
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="index.html" class="icon icon-home"> Arthas
</a>
<div class="version">
3.0.5-SNAPSHOT
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l3"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l3"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l3"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l3 current"><a class="reference internal" href="watch.html">watch</a><ul class="current">
<li class="toctree-l4 current"><a class="reference internal" href="watch.html#parameters-options">Parameters &amp; Options</a></li>
<li class="toctree-l4"><a class="reference internal" href="watch.html#usage">Usage</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
</ul>
</li>
</ul>
</li>
<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"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Arthas</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">All Commands</a> &raquo;</li>
<li><a href="watch.html">watch</a> &raquo;</li>
<li>Critical Fields in Expressions</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/alibaba/arthas/blob/master/site/src/site/sphinx/advice-class.md" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="critical-fields-in-expressions">
<span id="critical-fields-in-expressions"></span><h1>Critical Fields in Expressions<a class="headerlink" href="#critical-fields-in-expressions" title="Permalink to this headline"></a></h1>
<p>There is a very fundamental class <code class="docutils literal notranslate"><span class="pre">Advice</span></code> for the expressions used in filtering, tracing or monitoring and other aspects in commands.</p>
<div class="highlight-java notranslate"><div class="highlight"><pre><span></span><span class="kd">public</span> <span class="kd">class</span> <span class="nc">Advice</span> <span class="o">{</span>
<span class="kd">private</span> <span class="kd">final</span> <span class="n">ClassLoader</span> <span class="n">loader</span><span class="o">;</span>
<span class="kd">private</span> <span class="kd">final</span> <span class="n">Class</span><span class="o">&lt;?&gt;</span> <span class="n">clazz</span><span class="o">;</span>
<span class="kd">private</span> <span class="kd">final</span> <span class="n">ArthasMethod</span> <span class="n">method</span><span class="o">;</span>
<span class="kd">private</span> <span class="kd">final</span> <span class="n">Object</span> <span class="n">target</span><span class="o">;</span>
<span class="kd">private</span> <span class="kd">final</span> <span class="n">Object</span><span class="o">[]</span> <span class="n">params</span><span class="o">;</span>
<span class="kd">private</span> <span class="kd">final</span> <span class="n">Object</span> <span class="n">returnObj</span><span class="o">;</span>
<span class="kd">private</span> <span class="kd">final</span> <span class="n">Throwable</span> <span class="n">throwExp</span><span class="o">;</span>
<span class="kd">private</span> <span class="kd">final</span> <span class="kt">boolean</span> <span class="n">isBefore</span><span class="o">;</span>
<span class="kd">private</span> <span class="kd">final</span> <span class="kt">boolean</span> <span class="n">isThrow</span><span class="o">;</span>
<span class="kd">private</span> <span class="kd">final</span> <span class="kt">boolean</span> <span class="n">isReturn</span><span class="o">;</span>
<span class="o">...</span>
<span class="c1">// getter/setter </span>
<span class="o">}</span>
</pre></div>
</div>
<table border="1" class="docutils">
<thead>
<tr>
<th align="right">Name</th>
<th align="left">Specification</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">loader</td>
<td align="left">class loader of the class</td>
</tr>
<tr>
<td align="right">clazz</td>
<td align="left">the reference of the class</td>
</tr>
<tr>
<td align="right">method</td>
<td align="left">the reflective reference of the method</td>
</tr>
<tr>
<td align="right">target</td>
<td align="left">the instance of the class</td>
</tr>
<tr>
<td align="right">params</td>
<td align="left">the parameters of the method, which is an array (when there is no argument in the method, it will be an empty array)</td>
</tr>
<tr>
<td align="right">returnObj</td>
<td align="left">the return value of the method - only when <code>isReturn==true</code>, it's a valid result but if the return value is <code>void</code> then it will be a <code>null</code></td>
</tr>
<tr>
<td align="right">throwExp</td>
<td align="left">the exceptions thrown by the method invoking - only when <code>isThrow==true</code>, it's a valid thrown exception</td>
</tr>
<tr>
<td align="right">isBefore</td>
<td align="left">assistant checking flag used in <a href="watch.md"><code>before-watching</code> point</a> and at this very moment: <code>isBefore==true</code>, <code>isThrow==false</code> and <code>isReturn==false</code> since it's before we invoke the method</td>
</tr>
<tr>
<td align="right">isThrow</td>
<td align="left">assistant checking flag: whether the current method invoking ends with exceptions</td>
</tr>
<tr>
<td align="right">isReturn</td>
<td align="left">assistant checking flag: whether the method invoking exits normally without exceptions</td>
</tr>
</tbody>
</table><p>F.Y.I</p>
<ol class="simple">
<li>all the <em>fields</em> mentioned in the table above can be used directly in the <code class="docutils literal notranslate"><span class="pre">expressions</span></code>;</li>
<li>if the expressions are <a class="reference external" href="https://en.wikipedia.org/wiki/OGNL">invalid OGNL</a>, the command will be cancelled automatically with hints to correct the expressions;</li>
<li><a class="reference external" href="https://github.com/alibaba/arthas/issues/71">typical use cases</a>;</li>
<li><a class="reference external" href="https://commons.apache.org/proper/commons-ognl/language-guide.html">OGNL official usage guide</a>.</li>
</ol>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="trace.html" class="btn btn-neutral float-right" title="trace" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="watch.html" class="btn btn-neutral" title="watch" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2018, Alibaba Middleware Group, and contributors.
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.0.5-SNAPSHOT',
LANGUAGE:'None',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas">Fork me at GitHub</a>
</div>
</div>
<script type="text/javascript" src="_static/add_badges.js"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?d5c5e25b100f0eb51a4c35c8a86ea9b4";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</body>
</html>

@ -0,0 +1,281 @@
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Batch Processing &mdash; Arthas 3.0.5-SNAPSHOT documentation</title>
<link rel="shortcut icon" href="_static/favicon.ico"/>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<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" />
<script src="_static/center_page.js"></script>
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="index.html" class="icon icon-home"> Arthas
</a>
<div class="version">
3.0.5-SNAPSHOT
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li>
<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"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Arthas</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li>Batch Processing</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/alibaba/arthas/blob/master/site/src/site/sphinx/batch-support.md" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="batch-processing">
<span id="batch-processing"></span><h1>Batch Processing<a class="headerlink" href="#batch-processing" title="Permalink to this headline"></a></h1>
<p>With the help of <code class="docutils literal notranslate"><span class="pre">Batch</span> <span class="pre">Processing</span></code>, you can run several commands in one line and get the results.</p>
<div class="section" id="usage">
<span id="usage"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2>
<div class="section" id="step-1-create-the-script">
<span id="step-1-create-the-script"></span><h3>Step-1: Create the script<a class="headerlink" href="#step-1-create-the-script" title="Permalink to this headline"></a></h3>
<p>Creating a <code class="docutils literal notranslate"><span class="pre">test.as</span></code> script suffixed with <code class="docutils literal notranslate"><span class="pre">as</span></code> here for consistency (actually any suffix is acceptable).</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>➜ arthas git:(develop) cat /var/tmp/test.as
help
dashboard -b -n 1
session
thread
sc -d org.apache.commons.lang.StringUtils
</pre></div>
</div>
<p>Attention:</p>
<ul class="simple">
<li>each command takes each independent line;</li>
<li><code class="docutils literal notranslate"><span class="pre">dashboard</span></code> command should include <code class="docutils literal notranslate"><span class="pre">-b</span></code> to turn on batch mode and <code class="docutils literal notranslate"><span class="pre">-n</span></code> to ensure the script ends;</li>
<li>commands as <code class="docutils literal notranslate"><span class="pre">watch/tt/trace/monitor/stack</span></code> should include <code class="docutils literal notranslate"><span class="pre">-n</span></code> option to ensure the script ends;</li>
<li><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/async.md">asynchronous</a> can also be used as <code class="docutils literal notranslate"><span class="pre">watch</span> <span class="pre">c.t.X</span> <span class="pre">test</span> <span class="pre">returnObj</span> <span class="pre">&gt;</span> <span class="pre">&amp;</span></code>;</li>
</ul>
</div>
<div class="section" id="step-2-run-the-script">
<span id="step-2-run-the-script"></span><h3>Step-2: Run the script<a class="headerlink" href="#step-2-run-the-script" title="Permalink to this headline"></a></h3>
<p>Using <code class="docutils literal notranslate"><span class="pre">-b</span></code> to turn on script mode, and <code class="docutils literal notranslate"><span class="pre">-f</span></code> to run it and you can also <em>redirect</em> the output as:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>./as.sh -b -f /var/tmp/test.as <span class="m">56328</span> &gt; test.out
</pre></div>
</div>
</div>
<div class="section" id="step-3-check-the-outputs">
<span id="step-3-check-the-outputs"></span><h3>Step-3: Check the outputs<a class="headerlink" href="#step-3-check-the-outputs" title="Permalink to this headline"></a></h3>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>cat test.out
</pre></div>
</div>
</div>
</div>
</div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2018, Alibaba Middleware Group, and contributors.
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.0.5-SNAPSHOT',
LANGUAGE:'None',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas">Fork me at GitHub</a>
</div>
</div>
<script type="text/javascript" src="_static/add_badges.js"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?d5c5e25b100f0eb51a4c35c8a86ea9b4";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</body>
</html>

@ -93,32 +93,35 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li> <li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li> <li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li> <li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li> <li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li> <li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li> <li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li> <li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li> <li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">classloader</a><ul> <li class="toctree-l3"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l3"><a class="reference internal" href="#options">Options</a></li> <li class="toctree-l3"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l3"><a class="reference internal" href="#usage">Usage</a></li> <li class="toctree-l3 current"><a class="current reference internal" href="#">classloader</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#options">Options</a></li>
<li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l3"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
</ul> </ul>
</li> </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>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas-basic-commands">Arthas Basic Commands</a></li>
</ul> </ul>
</li> </li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -167,7 +170,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">Commands List</a> &raquo;</li> <li><a href="commands.html">All Commands</a> &raquo;</li>
<li>classloader</li> <li>classloader</li>
@ -206,22 +209,22 @@
<tbody> <tbody>
<tr> <tr>
<td align="right">[l]</td> <td align="right">[l]</td>
<td align="left">count based on the class loader instance</td> <td align="left">list all class loader instances based on thread count</td>
</tr> </tr>
<tr> <tr>
<td align="right">[t]</td> <td align="right">[t]</td>
<td align="left">print all the inheritance structure of the class loaders</td> <td align="left">print the inheritance structure of the class loaders</td>
</tr> </tr>
<tr> <tr>
<td align="right">[a]</td> <td align="right">[a]</td>
<td align="left">list all the classes loaded by all the class loaders (use it with great caution since the output can be huge)</td> <td align="left">list all the classes loaded by all the class loaders (use it with great caution since the output can be huge)</td>
</tr> </tr>
<tr> <tr>
<td align="right"><code>[c:]</code></td> <td align="right">[c:]</td>
<td align="left">get the hashcode of the class loader</td> <td align="left">get the hashcode of the class loader</td>
</tr> </tr>
<tr> <tr>
<td align="right"><code>[c: r:]</code></td> <td align="right">[c: r:]</td>
<td align="left">using class loader to search resource</td> <td align="left">using class loader to search resource</td>
</tr> </tr>
</tbody> </tbody>
@ -229,9 +232,9 @@
<div class="section" id="usage"> <div class="section" id="usage">
<span id="usage"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2> <span id="usage"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2>
<ul class="simple"> <ul class="simple">
<li>categorised by class loader</li> <li>Categorised by class loader</li>
</ul> </ul>
<div class="highlight-s notranslate"><div class="highlight"><pre><span></span><span class="o">$</span> classloader <div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ classloader
name numberOfInstances loadedCountTotal name numberOfInstances loadedCountTotal
com.taobao.pandora.service.loader.ModuleClassLoader <span class="m">29</span> <span class="m">11659</span> com.taobao.pandora.service.loader.ModuleClassLoader <span class="m">29</span> <span class="m">11659</span>
com.taobao.pandora.boot.loader.ReLaunchURLClassLoader <span class="m">1</span> <span class="m">5308</span> com.taobao.pandora.boot.loader.ReLaunchURLClassLoader <span class="m">1</span> <span class="m">5308</span>
@ -239,12 +242,12 @@
com.taobao.arthas.agent.ArthasClassloader <span class="m">2</span> <span class="m">2825</span> com.taobao.arthas.agent.ArthasClassloader <span class="m">2</span> <span class="m">2825</span>
sun.reflect.DelegatingClassLoader <span class="m">332</span> <span class="m">332</span> sun.reflect.DelegatingClassLoader <span class="m">332</span> <span class="m">332</span>
java.net.URLClassLoader <span class="m">1</span> <span class="m">285</span> java.net.URLClassLoader <span class="m">1</span> <span class="m">285</span>
sun.misc.Launcher<span class="o">$</span>AppClassLoader <span class="m">1</span> <span class="m">77</span> sun.misc.Launcher<span class="nv">$AppClassLoader</span> <span class="m">1</span> <span class="m">77</span>
sun.misc.Launcher<span class="o">$</span>ExtClassLoader <span class="m">1</span> <span class="m">46</span> sun.misc.Launcher<span class="nv">$ExtClassLoader</span> <span class="m">1</span> <span class="m">46</span>
com.alibaba.fastjson.util.ASMClassLoader <span class="m">2</span> <span class="m">3</span> com.alibaba.fastjson.util.ASMClassLoader <span class="m">2</span> <span class="m">3</span>
org.jvnet.hk2.internal.DelegatingClassLoader <span class="m">2</span> <span class="m">2</span> org.jvnet.hk2.internal.DelegatingClassLoader <span class="m">2</span> <span class="m">2</span>
sun.reflect.misc.MethodUtil <span class="m">1</span> <span class="m">1</span> sun.reflect.misc.MethodUtil <span class="m">1</span> <span class="m">1</span>
Affect<span class="p">(</span><span class="kp">row</span><span class="o">-</span>cnt<span class="o">:</span><span class="m">11</span><span class="p">)</span> cost <span class="kr">in</span> <span class="m">66</span> ms. Affect<span class="o">(</span>row-cnt:11<span class="o">)</span> cost in <span class="m">66</span> ms.
</pre></div> </pre></div>
</div> </div>
<ul class="simple"> <ul class="simple">
@ -312,7 +315,7 @@ Affect<span class="p">(</span><span class="kp">row</span><span class="o">-</span
</pre></div> </pre></div>
</div> </div>
<ul class="simple"> <ul class="simple">
<li>Check the real urls of <code class="docutils literal notranslate"><span class="pre">URLClassLoader</span></code></li> <li>Check URL of the class loader</li>
</ul> </ul>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ classloader -c 5ffe9775 <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ classloader -c 5ffe9775
file:/Users/hello/soft/taobao-tomcat-7.0.64/deploy/taobao-hsf.sar/lib/commons-lang-2.6.jar file:/Users/hello/soft/taobao-tomcat-7.0.64/deploy/taobao-hsf.sar/lib/commons-lang-2.6.jar

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Commands List &mdash; Arthas 3.0.5-SNAPSHOT documentation</title> <title>All Commands &mdash; Arthas 3.0.5-SNAPSHOT documentation</title>
@ -93,28 +93,31 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Commands</a><ul> <li class="toctree-l1 current"><a class="current reference internal" href="#">Commands</a><ul>
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li> <li class="toctree-l2"><a class="reference internal" href="#advanced">Advanced</a><ul>
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li> <li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li> <li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li> <li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li> <li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li> <li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li> <li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li> <li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li> <li class="toctree-l3"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li> <li class="toctree-l3"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li> <li class="toctree-l3"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li> <li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li> <li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li> <li class="toctree-l3"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li> <li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li> <li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l2"><a class="reference internal" href="#arthas-basic-commands">Arthas Basic Commands</a></li> <li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
</ul>
</li>
</ul> </ul>
</li> </li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -163,7 +166,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li>Commands List</li> <li>All Commands</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
@ -184,8 +187,23 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="section" id="commands-list"> <div class="section" id="all-commands">
<span id="commands-list"></span><h1>Commands List<a class="headerlink" href="#commands-list" title="Permalink to this headline"></a></h1> <span id="all-commands"></span><h1>All Commands<a class="headerlink" href="#all-commands" title="Permalink to this headline"></a></h1>
<div class="section" id="basic">
<span id="basic"></span><h2>Basic<a class="headerlink" href="#basic" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li>help - check the assistant info for the command</li>
<li>cls - clear out the current screen area</li>
<li>session - check the current session profile</li>
<li><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/reset.md">reset</a> - clear the injected code from the classes (B.T.W when Arthas server closed, all the injected will also be cleared)</li>
<li>version - the version of the working Arthas</li>
<li>quit - exit the current Arthas client without affecting other clients</li>
<li>shutdown - terminate the Arthas server and all clients</li>
<li><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/keymap.md">keymap</a> - shortcuts for Arthas and also you can define your own</li>
</ul>
</div>
<div class="section" id="advanced">
<span id="advanced"></span><h2>Advanced<a class="headerlink" href="#advanced" title="Permalink to this headline"></a></h2>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
<ul> <ul>
<li class="toctree-l1"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l1"><a class="reference internal" href="dashboard.html">dashboard</a></li>
@ -207,18 +225,6 @@
<li class="toctree-l1"><a class="reference internal" href="options.html">options</a></li> <li class="toctree-l1"><a class="reference internal" href="options.html">options</a></li>
</ul> </ul>
</div> </div>
<div class="section" id="arthas-basic-commands">
<span id="arthas-basic-commands"></span><h2>Arthas Basic Commands<a class="headerlink" href="#arthas-basic-commands" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li>help - check the assistant info for the command</li>
<li>cls - clear out the current screen area</li>
<li>session - check the current session profile</li>
<li><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/reset.md">reset</a> - clear the injected code from the classes (B.T.W when Arthas server closed, all the injected will also be cleared)</li>
<li>version - the version of the working Arthas</li>
<li>quit - exit the current Arthas client without affecting other clients</li>
<li>shutdown - terminate the Arthas server and all clients</li>
<li><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/keymap.md">keymap</a> - shortcuts for Arthas and also you can define your own</li>
</ul>
</div> </div>
</div> </div>

@ -32,7 +32,7 @@
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
<link rel="next" title="thread" href="thread.html" /> <link rel="next" title="thread" href="thread.html" />
<link rel="prev" title="Commands List" href="commands.html" /> <link rel="prev" title="All Commands" href="commands.html" />
<script src="_static/center_page.js"></script> <script src="_static/center_page.js"></script>
@ -93,33 +93,36 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">dashboard</a><ul> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l3"><a class="reference internal" href="#a-demo">A Demo</a></li> <li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="#specification">Specification</a></li> <li class="toctree-l3 current"><a class="current reference internal" href="#">dashboard</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#screenshots">Screenshots</a></li> <li class="toctree-l4"><a class="reference internal" href="#a-demo">A Demo</a></li>
<li class="toctree-l4"><a class="reference internal" href="#specification">Specification</a></li>
<li class="toctree-l4"><a class="reference internal" href="#screenshots">Screenshots</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l3"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l3"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l3"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l3"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li>
<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="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>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas-basic-commands">Arthas Basic Commands</a></li>
</ul> </ul>
</li> </li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -168,7 +171,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">Commands List</a> &raquo;</li> <li><a href="commands.html">All Commands</a> &raquo;</li>
<li>dashboard</li> <li>dashboard</li>
@ -265,7 +268,7 @@ uptime 16020s busy
<a href="thread.html" class="btn btn-neutral float-right" title="thread" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> <a href="thread.html" class="btn btn-neutral float-right" title="thread" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="commands.html" class="btn btn-neutral" title="Commands List" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> <a href="commands.html" class="btn btn-neutral" title="All Commands" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div> </div>

@ -93,32 +93,35 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li> <li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li> <li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li> <li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li> <li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li> <li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li> <li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">dump</a><ul> <li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l3"><a class="reference internal" href="#options">Options</a></li> <li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l3"><a class="reference internal" href="#usage">Usage</a></li> <li class="toctree-l3 current"><a class="current reference internal" href="#">dump</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#options">Options</a></li>
<li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l3"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l3"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
</ul> </ul>
</li> </li>
<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="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>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas-basic-commands">Arthas Basic Commands</a></li>
</ul> </ul>
</li> </li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -167,7 +170,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">Commands List</a> &raquo;</li> <li><a href="commands.html">All Commands</a> &raquo;</li>
<li>dump</li> <li>dump</li>
@ -208,18 +211,18 @@
<td align="left">pattern for the class name</td> <td align="left">pattern for the class name</td>
</tr> </tr>
<tr> <tr>
<td align="right"><code>[c:]</code></td> <td align="right">[c:]</td>
<td align="left">hashcode of the class loader that loaded the class</td> <td align="left">hashcode of the <a href="classloader.md">class loader</a> that loaded the class</td>
</tr> </tr>
<tr> <tr>
<td align="right">[E]</td> <td align="right">[E]</td>
<td align="left">turn on regx matching while the default is wildcards matching</td> <td align="left">turn on regex matching while the default is wildcard matching</td>
</tr> </tr>
</tbody> </tbody>
</table></div> </table></div>
<div class="section" id="usage"> <div class="section" id="usage">
<span id="usage"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2> <span id="usage"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ dump -E org<span class="se">\.</span>apache<span class="se">\.</span>commons<span class="se">\.</span>lang<span class="se">\.</span>StringUtils <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ dump org.apache.commons.lang.StringUtils
HASHCODE CLASSLOADER LOCATION HASHCODE CLASSLOADER LOCATION
29505d69 +-tddl-client<span class="s1">&#39;s ModuleClassLoader /Users/zhuyong/middleware/taobao-tomcat/output/build/bin/classdump/com.taobao.pandora</span> 29505d69 +-tddl-client<span class="s1">&#39;s ModuleClassLoader /Users/zhuyong/middleware/taobao-tomcat/output/build/bin/classdump/com.taobao.pandora</span>
<span class="s1"> .service.loader.ModuleClassLoader-29505d69/org.apache.commons.lang.StringUtils.class</span> <span class="s1"> .service.loader.ModuleClassLoader-29505d69/org.apache.commons.lang.StringUtils.class</span>

@ -93,7 +93,7 @@
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li> <li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>

@ -93,28 +93,31 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li> <li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li> <li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li> <li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">getstatic</a></li> <li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li> <li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li> <li class="toctree-l3 current"><a class="current reference internal" href="#">getstatic</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li> <li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li> <li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li> <li class="toctree-l3"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li> <li class="toctree-l3"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li> <li class="toctree-l3"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li> <li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li> <li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li> <li class="toctree-l3"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li> <li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li> <li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas-basic-commands">Arthas Basic Commands</a></li> <li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
</ul>
</li>
</ul> </ul>
</li> </li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -163,7 +166,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">Commands List</a> &raquo;</li> <li><a href="commands.html">All Commands</a> &raquo;</li>
<li>getstatic</li> <li>getstatic</li>

@ -93,7 +93,7 @@
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li> <li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -193,7 +193,7 @@
</div> </div>
<div class="section" id="contents"> <div class="section" id="contents">
<span id="contents"></span><h2>Contents<a class="headerlink" href="#contents" title="Permalink to this headline"></a></h2> <span id="contents"></span><h2>Contents<a class="headerlink" href="#contents" title="Permalink to this headline"></a></h2>
<p>English version is on the way, if you would like to contribute, please leave a message <a class="reference external" href="https://github.com/alibaba/arthas/issues/51">here</a></p> <p>English version has just been finished. If you would like to make it better, please check <a class="reference external" href="https://github.com/alibaba/arthas/issues/51">here</a> and submit your PM.</p>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
<ul> <ul>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">Installation</a></li> <li class="toctree-l1"><a class="reference internal" href="install-detail.html">Installation</a></li>
@ -201,7 +201,7 @@
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li> <li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>

@ -106,7 +106,7 @@
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li> <li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -201,7 +201,7 @@
</div> </div>
<div class="section" id="manual-installation"> <div class="section" id="manual-installation">
<span id="manual-installation"></span><h2>Manual Installation<a class="headerlink" href="#manual-installation" title="Permalink to this headline"></a></h2> <span id="manual-installation"></span><h2>Manual Installation<a class="headerlink" href="#manual-installation" title="Permalink to this headline"></a></h2>
<p><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/manual-install.md">Manual Installation</a></p> <p><a class="reference internal" href="manual-install.html"><span class="doc">Manual Installation</span></a></p>
</div> </div>
<div class="section" id="advanced-manual-boot"> <div class="section" id="advanced-manual-boot">
<span id="advanced-manual-boot"></span><h2>Advanced Manual Boot<a class="headerlink" href="#advanced-manual-boot" title="Permalink to this headline"></a></h2> <span id="advanced-manual-boot"></span><h2>Advanced Manual Boot<a class="headerlink" href="#advanced-manual-boot" title="Permalink to this headline"></a></h2>

@ -93,32 +93,35 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li> <li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li> <li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li> <li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li> <li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li> <li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li> <li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li> <li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">jad</a><ul> <li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l3"><a class="reference internal" href="#options">Options</a></li> <li class="toctree-l3"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l3"><a class="reference internal" href="#usage">Usage</a></li> <li class="toctree-l3 current"><a class="current reference internal" href="#">jad</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#options">Options</a></li>
<li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l3"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</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>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas-basic-commands">Arthas Basic Commands</a></li>
</ul> </ul>
</li> </li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -167,7 +170,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">Commands List</a> &raquo;</li> <li><a href="commands.html">All Commands</a> &raquo;</li>
<li>jad</li> <li>jad</li>
@ -196,8 +199,8 @@
<p><code class="docutils literal notranslate"><span class="pre">jad</span></code> helps to <em>de-compile</em> the byte code in JVM to the source code to assist you to better understand the logic behind.</p> <p><code class="docutils literal notranslate"><span class="pre">jad</span></code> helps to <em>de-compile</em> the byte code in JVM to the source code to assist you to better understand the logic behind.</p>
<p>F.Y.I</p> <p>F.Y.I</p>
<ul class="simple"> <ul class="simple">
<li>the de-compiled code will be grammatically highlighted for readability in Arthas Console;</li> <li>the de-compiled code will be grammatically highlighted for readability in Arthas console;</li>
<li>you have to understand there might be some trivial grammar errors but it wont affect the logic understanding.</li> <li>there might be some trivial grammar errors but it wont affect the logic understanding.</li>
</ul> </ul>
<div class="section" id="options"> <div class="section" id="options">
<span id="options"></span><h2>Options<a class="headerlink" href="#options" title="Permalink to this headline"></a></h2> <span id="options"></span><h2>Options<a class="headerlink" href="#options" title="Permalink to this headline"></a></h2>
@ -214,12 +217,12 @@
<td align="left">pattern for the class name</td> <td align="left">pattern for the class name</td>
</tr> </tr>
<tr> <tr>
<td align="right"><code>[c:]</code></td> <td align="right">[c:]</td>
<td align="left">hashcode of the class loader that loaded the class</td> <td align="left">hashcode of the class loader that loaded the class</td>
</tr> </tr>
<tr> <tr>
<td align="right">[E]</td> <td align="right">[E]</td>
<td align="left">turn on regx matching while the default is wildcards matching</td> <td align="left">turn on regex matching while the default is wildcard matching</td>
</tr> </tr>
</tbody> </tbody>
</table></div> </table></div>
@ -228,7 +231,7 @@
<p>When several class loaders loaded the same class:</p> <p>When several class loaders loaded the same class:</p>
<ol class="simple"> <ol class="simple">
<li><code class="docutils literal notranslate"><span class="pre">jad</span></code> to get the hashcode of the class loader;</li> <li><code class="docutils literal notranslate"><span class="pre">jad</span></code> to get the hashcode of the class loader;</li>
<li><code class="docutils literal notranslate"><span class="pre">jad</span> <span class="pre">-c</span> <span class="pre">&lt;hashcode&gt;</span></code> to get the de-compiled class loaded by the class loader.</li> <li><code class="docutils literal notranslate"><span class="pre">jad</span> <span class="pre">-c</span> <span class="pre">&lt;hashcode&gt;</span></code> to get the de-compiled class loaded by the specified class loader.</li>
</ol> </ol>
<div class="highlight-java notranslate"><div class="highlight"><pre><span></span>$ jad org.apache.log4j.Logger <div class="highlight-java notranslate"><div class="highlight"><pre><span></span>$ jad org.apache.log4j.Logger
@ -361,6 +364,8 @@ private Map&lt;String, Object&gt; directMetrics<span class="o">(</span>String ip
Affect<span class="o">(</span>row-cnt:1<span class="o">)</span> cost in <span class="m">1508</span> ms. Affect<span class="o">(</span>row-cnt:1<span class="o">)</span> cost in <span class="m">1508</span> ms.
</pre></div> </pre></div>
</div> </div>
<p>F.Y.I</p>
<p>Inner class is not yet supported, you can just check the <em>outer</em> class to further check the inner class.</p>
</div> </div>
</div> </div>

@ -93,32 +93,36 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li> <li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">jvm</a><ul> <li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l3"><a class="reference internal" href="#usage">Usage</a></li> <li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l3"><a class="reference internal" href="#thread-related">thread-related</a></li> <li class="toctree-l3 current"><a class="current reference internal" href="#">jvm</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="#thread-related">thread-related</a></li>
<li class="toctree-l4"><a class="reference internal" href="#filedescriptor-related">fileDescriptor-related</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l3"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l3"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l3"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l3"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li>
<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="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>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas-basic-commands">Arthas Basic Commands</a></li>
</ul> </ul>
</li> </li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -167,7 +171,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">Commands List</a> &raquo;</li> <li><a href="commands.html">All Commands</a> &raquo;</li>
<li>jvm</li> <li>jvm</li>
@ -272,8 +276,14 @@
THREAD COUNT 16 THREAD COUNT 16
DAEMON-COUNT 10 DAEMON-COUNT 10
LIVE-COUNT 18 PEAK-COUNT 18
STARTED-COUNT 19 STARTED-COUNT 19
DEADLOCK-COUNT 0
FILE-DESCRIPTOR
MAX-FILE-DESCRIPTOR-COUNT 10240
OPEN-FILE-DESCRIPTOR-COUNT 648
Affect cost in 2 ms. Affect cost in 2 ms.
</pre></div> </pre></div>
</div> </div>
@ -283,8 +293,16 @@ Affect cost in 2 ms.
<ul class="simple"> <ul class="simple">
<li>COUNT: the count of active threads</li> <li>COUNT: the count of active threads</li>
<li>DAEMON-COUNT: the count of active daemon threads</li> <li>DAEMON-COUNT: the count of active daemon threads</li>
<li>LIVE-COUNT: the maximum count of the live threads since JVM starts</li> <li>PEAK-COUNT: the maximum count of the live threads since JVM starts</li>
<li>STARTED-COUNT: the total count of the created threads since JVM starts</li> <li>STARTED-COUNT: the total count of the created threads since JVM starts</li>
<li>DEADLOCK-COUNT: the count of deadlock threads</li>
</ul>
</div>
<div class="section" id="filedescriptor-related">
<span id="filedescriptor-related"></span><h2>fileDescriptor-related<a class="headerlink" href="#filedescriptor-related" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li>MAX-FILE-DESCRIPTOR-COUNTthe count of max file descriptor JVM process can open</li>
<li>OPEN-FILE-DESCRIPTOR-COUNTthe current count of file descriptor JVM process open</li>
</ul> </ul>
</div> </div>
</div> </div>

@ -0,0 +1,272 @@
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Manual Installation &mdash; Arthas 3.0.5-SNAPSHOT documentation</title>
<link rel="shortcut icon" href="_static/favicon.ico"/>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<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" />
<script src="_static/center_page.js"></script>
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="index.html" class="icon icon-home"> Arthas
</a>
<div class="version">
3.0.5-SNAPSHOT
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li>
<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"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Arthas</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li>Manual Installation</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/alibaba/arthas/blob/master/site/src/site/sphinx/manual-install.md" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="manual-installation">
<span id="manual-installation"></span><h1>Manual Installation<a class="headerlink" href="#manual-installation" title="Permalink to this headline"></a></h1>
<div class="section" id="download">
<span id="download"></span><h2>Download<a class="headerlink" href="#download" title="Permalink to this headline"></a></h2>
<p>Latest <code class="docutils literal notranslate"><span class="pre">bin.zip</span></code>: <a class="reference external" href="http://search.maven.org/classic/#search%7Cga%7C1%7Cg%3A%22com.taobao.arthas%22%20AND%20a%3A%22arthas-packaging%22"><img alt="Arthas" src="https://img.shields.io/maven-central/v/com.taobao.arthas/arthas-packaging.svg?style=flat-square" /></a></p>
<p>If the downloading is rather clumsy, try to download from the <a class="reference external" href="https://maven.aliyun.com/">repository in AliYun</a>; the downloading URL template is (remember to fill up the version <code class="docutils literal notranslate"><span class="pre">3.x.x</span></code> template to your needs)</p>
<p><code class="docutils literal notranslate"><span class="pre">https://maven.aliyun.com/repository/public/com/taobao/arthas/arthas-packaging/3.x.x/arthas-packaging-3.x.x-bin.zip</span></code></p>
</div>
<div class="section" id="unzip">
<span id="unzip"></span><h2>Unzip<a class="headerlink" href="#unzip" title="Permalink to this headline"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>unzip arthas-packaging-bin.zip
</pre></div>
</div>
</div>
<div class="section" id="install">
<span id="install"></span><h2>Install<a class="headerlink" href="#install" title="Permalink to this headline"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo su admin
rm -rf /home/admin/.arthas/lib/* <span class="c1"># remove all the leftover of the old outdated Arthas</span>
<span class="nb">cd</span> arthas
./install-local.sh <span class="c1"># switch the user based on the owner of the target Java process.</span>
</pre></div>
</div>
</div>
<div class="section" id="start">
<span id="start"></span><h2>Start<a class="headerlink" href="#start" title="Permalink to this headline"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./as.sh <span class="c1"># make sure the old Arthas has been shut down (using command shutdown);</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2018, Alibaba Middleware Group, and contributors.
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.0.5-SNAPSHOT',
LANGUAGE:'None',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas">Fork me at GitHub</a>
</div>
</div>
<script type="text/javascript" src="_static/add_badges.js"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?d5c5e25b100f0eb51a4c35c8a86ea9b4";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</body>
</html>

@ -93,33 +93,36 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li> <li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li> <li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li> <li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li> <li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li> <li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li> <li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li> <li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li> <li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li> <li class="toctree-l3"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li> <li class="toctree-l3"><a class="reference internal" href="jad.html">jad</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="classloader.html">classloader</a></li>
<li class="toctree-l3"><a class="reference internal" href="#properties-monitored">Properties monitored</a></li> <li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l3"><a class="reference internal" href="#parameters">Parameters</a></li> <li class="toctree-l3 current"><a class="current reference internal" href="#">monitor</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#usage">Usage</a></li> <li class="toctree-l4"><a class="reference internal" href="#properties-monitored">Properties monitored</a></li>
<li class="toctree-l4"><a class="reference internal" href="#parameters">Parameters</a></li>
<li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas-basic-commands">Arthas Basic Commands</a></li>
</ul> </ul>
</li> </li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -168,7 +171,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">Commands List</a> &raquo;</li> <li><a href="commands.html">All Commands</a> &raquo;</li>
<li>monitor</li> <li>monitor</li>
@ -193,13 +196,13 @@
<div class="section" id="monitor"> <div class="section" id="monitor">
<span id="monitor"></span><h1>monitor<a class="headerlink" href="#monitor" title="Permalink to this headline"></a></h1> <span id="monitor"></span><h1>monitor<a class="headerlink" href="#monitor" title="Permalink to this headline"></a></h1>
<p>Monitor the <code class="docutils literal notranslate"><span class="pre">class-pattern</span></code> &amp; <code class="docutils literal notranslate"><span class="pre">method-pattern</span></code> matched methods invoking traces.</p> <p>Monitor methods calling stack traces.</p>
<p>F.Y.I</p> <p>F.Y.I</p>
<ol class="simple"> <ol class="simple">
<li><code class="docutils literal notranslate"><span class="pre">monitor</span></code> is a persistent command, it never returns until <code class="docutils literal notranslate"><span class="pre">Ctrl+C</span></code> to manually stop it.</li> <li><code class="docutils literal notranslate"><span class="pre">monitor</span></code> is a persistent command, it never returns until you press <code class="docutils literal notranslate"><span class="pre">Ctrl+C</span></code> to manually stop it;</li>
<li>the server runs the tasks in the background;</li> <li>the server runs the jobs in the background;</li>
<li>injected code will become invalid automatically once the tasks being terminated;</li> <li>injected monitoring code will become invalid automatically once the monitoring jobs being terminated;</li>
<li>in theory, Arthas commands will not change any original behaviors.</li> <li>in theory, Arthas will not change any original behaviors but if it does, please do not hesitate to start an <a class="reference external" href="https://github.com/alibaba/arthas/issues">issue</a>.</li>
</ol> </ol>
<div class="section" id="properties-monitored"> <div class="section" id="properties-monitored">
<span id="properties-monitored"></span><h2>Properties monitored<a class="headerlink" href="#properties-monitored" title="Permalink to this headline"></a></h2> <span id="properties-monitored"></span><h2>Properties monitored<a class="headerlink" href="#properties-monitored" title="Permalink to this headline"></a></h2>
@ -265,11 +268,11 @@
</tr> </tr>
<tr> <tr>
<td align="right">[E]</td> <td align="right">[E]</td>
<td align="left">turn on regx matching while the default is wildcards matching</td> <td align="left">turn on regex matching while the default is wildcard matching</td>
</tr> </tr>
<tr> <tr>
<td align="right"><code>[c:]</code></td> <td align="right">[c:]</td>
<td align="left">cycle of output with default value: <code>120 s</code></td> <td align="left">cycle of output with default value: <code>60 s</code></td>
</tr> </tr>
</tbody> </tbody>
</table></div> </table></div>

Binary file not shown.

@ -31,6 +31,7 @@
<link rel="stylesheet" href="_static/overrides.css" type="text/css" /> <link rel="stylesheet" href="_static/overrides.css" type="text/css" />
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
<link rel="next" title="Release Notes" href="release-notes.html" />
<link rel="prev" title="tt" href="tt.html" /> <link rel="prev" title="tt" href="tt.html" />
<script src="_static/center_page.js"></script> <script src="_static/center_page.js"></script>
@ -92,31 +93,35 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li> <li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li> <li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li> <li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li> <li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li> <li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li> <li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li> <li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li> <li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li> <li class="toctree-l3"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li> <li class="toctree-l3"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li> <li class="toctree-l3"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li> <li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li> <li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li> <li class="toctree-l3"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li> <li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">options</a><ul> <li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l3"><a class="reference internal" href="#usage">Usage</a></li> <li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">options</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#global-options">Global options</a></li>
<li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li>
</ul>
</li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas-basic-commands">Arthas Basic Commands</a></li>
</ul> </ul>
</li> </li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -165,7 +170,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">Commands List</a> &raquo;</li> <li><a href="commands.html">All Commands</a> &raquo;</li>
<li>options</li> <li>options</li>
@ -190,8 +195,8 @@
<div class="section" id="options"> <div class="section" id="options">
<span id="options"></span><h1>options<a class="headerlink" href="#options" title="Permalink to this headline"></a></h1> <span id="options"></span><h1>options<a class="headerlink" href="#options" title="Permalink to this headline"></a></h1>
<blockquote> <div class="section" id="global-options">
<div>Global options</div></blockquote> <span id="global-options"></span><h2>Global options<a class="headerlink" href="#global-options" title="Permalink to this headline"></a></h2>
<table border="1" class="docutils"> <table border="1" class="docutils">
<thead> <thead>
<tr> <tr>
@ -204,12 +209,12 @@
<tr> <tr>
<td>unsafe</td> <td>unsafe</td>
<td>false</td> <td>false</td>
<td>Enable support for system-level class enhancement; JVM might crash, if you turn on this switch (please use with great caution!)</td> <td>Enable system-level class enhancement; JVM might crash, if you turn it on (use with great caution :exclamation:)</td>
</tr> </tr>
<tr> <tr>
<td>dump</td> <td>dump</td>
<td>false</td> <td>false</td>
<td>Enable support for dumping enhanced class to external fileif turned onclass file will be dumped to<code>/${application dir}/arthas-class-dump/</code>please see console for specific location</td> <td>Enable support for dumping enhanced class to external files; if turned on, class file will be dumped to<code>/${application dir}/arthas-class-dump/</code>please check console output for specific location</td>
</tr> </tr>
<tr> <tr>
<td>batch-re-transform</td> <td>batch-re-transform</td>
@ -224,27 +229,28 @@
<tr> <tr>
<td>disable-sub-class</td> <td>disable-sub-class</td>
<td>false</td> <td>false</td>
<td>Disabling child class matchingby default child class will be matched during matching target classif you wish exact matchingyou can turn this off</td> <td>Disabling child class matching: by default child class will be matched while matching target class; if you wish exact matching, you should turn it off</td>
</tr> </tr>
<tr> <tr>
<td>debug-for-asm</td> <td>debug-for-asm</td>
<td>false</td> <td>false</td>
<td>Print ASM related debug message</td> <td>Print ASM-related debug message</td>
</tr> </tr>
<tr> <tr>
<td>save-result</td> <td>save-result</td>
<td>false</td> <td>false</td>
<td>Enable saving logs for task resultswhen turn to true, all command results will be saved to <code>/home/admin/logs/arthas/arthas.log</code></td> <td>Enable saving logs for task results: when true, all command results will be saved to <code>/home/admin/logs/arthas/arthas.log</code></td>
</tr> </tr>
<tr> <tr>
<td>job-timeout</td> <td>job-timeout</td>
<td>1d</td> <td>1d</td>
<td>Default time-out time for back-stage tasksif exceed this timetask will be stoppedi.e. 1d, 2h, 3m, 25srepresenting day、hour、minute、second</td> <td>Default timeout for background jobs: jobs will be stopped once timed out (i.e. 1d, 2h, 3m, 25s)</td>
</tr> </tr>
</tbody> </tbody>
</table><div class="section" id="usage"> </table></div>
<div class="section" id="usage">
<span id="usage"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2> <span id="usage"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2>
<p>For exampleif you wish to save logs for command results, you can use following command:</p> <p>Saving logs for command outputs, you can:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ options save-result true <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ options save-result true
NAME BEFORE-VALUE AFTER-VALUE NAME BEFORE-VALUE AFTER-VALUE
---------------------------------------- ----------------------------------------
@ -262,6 +268,8 @@
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="release-notes.html" class="btn btn-neutral float-right" title="Release Notes" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="tt.html" class="btn btn-neutral" title="tt" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> <a href="tt.html" class="btn btn-neutral" title="tt" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>

@ -105,7 +105,7 @@
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li> <li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -228,7 +228,7 @@ sudo -u admin -EH ./as.sh
</pre></div> </pre></div>
</div> </div>
</li> </li>
<li><p class="first">For more details of the booting script, please refer to <a class="reference internal" href="start-arthas.html"><span class="doc">starting arthas</span></a>.</p> <li><p class="first">For more details of the booting script, please refer to <a class="reference internal" href="start-arthas.html"><span class="doc">Start Arthas</span></a>.</p>
</li> </li>
<li><p class="first">If you cannot <em>attach</em> the target process, please check the logs under <code class="docutils literal notranslate"><span class="pre">~/logs/arthas</span></code> for troubleshooting.</p> <li><p class="first">If you cannot <em>attach</em> the target process, please check the logs under <code class="docutils literal notranslate"><span class="pre">~/logs/arthas</span></code> for troubleshooting.</p>
</li> </li>
@ -257,8 +257,8 @@ wiki: https://alibaba.github.io/arthas
version: 3.0.1-RC-SNAPSHOT version: 3.0.1-RC-SNAPSHOT
pid: 13560 pid: 13560
timestamp: 1536656867894 timestamp: 1536656867894
&#39;`&#39;`&#39;`&#39;`&#39;`&#39;`&#39;`&#39;`&#39;`
&#39; $
</pre></div> </pre></div>
</div> </div>
</li> </li>
@ -319,7 +319,7 @@ ts=2018-09-10 17:53:14;result=@Integer[624]
ts=2018-09-10 17:53:15;result=@Integer[625] ts=2018-09-10 17:53:15;result=@Integer[625]
</pre></div> </pre></div>
</div> </div>
<p><a class="reference internal" href="advanced-use.html"><span class="doc">more advanced functions</span></a></p> <p><a class="reference internal" href="advanced-use.html"><span class="doc">more advanced usages</span></a></p>
</div> </div>
<div class="section" id="exit-arthas"> <div class="section" id="exit-arthas">
<span id="exit-arthas"></span><h2>5. Exit Arthas<a class="headerlink" href="#exit-arthas" title="Permalink to this headline"></a></h2> <span id="exit-arthas"></span><h2>5. Exit Arthas<a class="headerlink" href="#exit-arthas" title="Permalink to this headline"></a></h2>

@ -93,32 +93,35 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li> <li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li> <li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li> <li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li> <li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li> <li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li> <li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li> <li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li> <li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li> <li class="toctree-l3"><a class="reference internal" href="dump.html">dump</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="jad.html">jad</a></li>
<li class="toctree-l3"><a class="reference internal" href="#options">Options</a></li> <li class="toctree-l3"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l3"><a class="reference internal" href="#usage">Usage</a></li> <li class="toctree-l3 current"><a class="current reference internal" href="#">redefine</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#options">Options</a></li>
<li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l3"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
</ul> </ul>
</li> </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>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas-basic-commands">Arthas Basic Commands</a></li>
</ul> </ul>
</li> </li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -167,7 +170,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">Commands List</a> &raquo;</li> <li><a href="commands.html">All Commands</a> &raquo;</li>
<li>redefine</li> <li>redefine</li>
@ -192,12 +195,12 @@
<div class="section" id="redefine"> <div class="section" id="redefine">
<span id="redefine"></span><h1>redefine<a class="headerlink" href="#redefine" title="Permalink to this headline"></a></h1> <span id="redefine"></span><h1>redefine<a class="headerlink" href="#redefine" title="Permalink to this headline"></a></h1>
<p>Load the external <code class="docutils literal notranslate"><span class="pre">*.class</span></code> files and <em>re-define</em> the JVM-loaded classes.</p> <p>Load the external <code class="docutils literal notranslate"><span class="pre">*.class</span></code> files to <strong>re-define</strong> the JVM-loaded classes.</p>
<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> <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>
<p>F.Y.I</p> <p>F.Y.I</p>
<ol class="simple"> <ol class="simple">
<li>Re-defined classes cannot be restores any more;</li> <li>Re-defined classes cannot be restores any more;</li>
<li>Re-definition can fail (like adding a new field); for more information, please refer to JDK documentation</li> <li>Re-definition can fail (like adding a new field/method); for more information, please refer to JDK documentation</li>
</ol> </ol>
<div class="section" id="options"> <div class="section" id="options">
<span id="options"></span><h2>Options<a class="headerlink" href="#options" title="Permalink to this headline"></a></h2> <span id="options"></span><h2>Options<a class="headerlink" href="#options" title="Permalink to this headline"></a></h2>
@ -221,8 +224,8 @@
</table></div> </table></div>
<div class="section" id="usage"> <div class="section" id="usage">
<span id="usage"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2> <span id="usage"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> redefine -p /tmp/Test.class <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>redefine -p /tmp/Test.class
redefine -c 327a647b -p /tmp/Test.class /tmp/Test\$Inner.class redefine -c 327a647b -p /tmp/Test.class /tmp/Test$Inner.class
</pre></div> </pre></div>
</div> </div>
</div> </div>

@ -0,0 +1,400 @@
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Release Notes &mdash; Arthas 3.0.5-SNAPSHOT documentation</title>
<link rel="shortcut icon" href="_static/favicon.ico"/>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<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="prev" title="options" href="options.html" />
<script src="_static/center_page.js"></script>
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="index.html" class="icon icon-home"> Arthas
</a>
<div class="version">
3.0.5-SNAPSHOT
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li>
<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="#">Release Notes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#tada-tada-v3-0-4-exclamation">:tada: :tada: v3.0.4 :exclamation:</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v2017-11-03">v2017-11-03</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v2017-09-22">v2017-09-22</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v2017-09-11">v2017-09-11</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v2017-05-11">v2017-05-11</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v2017-05-12">v2017-05-12</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v2016-12-09">v2016-12-09</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v2016-06-07">v2016-06-07</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v2016-04-08">v2016-04-08</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v2016-03-07">v2016-03-07</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v2016-01-18">v2016-01-18</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v2016-01-08">v2016-01-08</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v2015-12-29">v2015-12-29</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Arthas</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li>Release Notes</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/alibaba/arthas/blob/master/site/src/site/sphinx/release-notes.md" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="release-notes">
<span id="release-notes"></span><h1>Release Notes<a class="headerlink" href="#release-notes" title="Permalink to this headline"></a></h1>
<div class="section" id="tada-tada-v3-0-4-exclamation">
<span id="tada-tada-v3-0-4-exclamation"></span><h2>:tada: :tada: <a class="reference external" href="https://github.com/alibaba/arthas/milestone/1?closed=1">v3.0.4</a> :exclamation:<a class="headerlink" href="#tada-tada-v3-0-4-exclamation" title="Permalink to this headline"></a></h2>
</div>
<div class="section" id="v2017-11-03">
<span id="v2017-11-03"></span><h2>v2017-11-03<a class="headerlink" href="#v2017-11-03" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li>[improvement] add <a class="reference external" href="getstatic.md"><code class="docutils literal notranslate"><span class="pre">getstatic</span></code></a></li>
<li>[bug] fix Arthas class loader logs loading issues</li>
<li>[improvement] introduce <a class="reference external" href="https://en.wikipedia.org/wiki/OGNL">OGNL</a> to customize <code class="docutils literal notranslate"><span class="pre">classloader</span></code> to invoke static methods</li>
<li>[improvement] optimise <code class="docutils literal notranslate"><span class="pre">termd</span></code> uppercase output performance</li>
<li>[improvement] <code class="docutils literal notranslate"><span class="pre">classloader</span></code> compile in class loader category by default</li>
<li>[bug] fix <code class="docutils literal notranslate"><span class="pre">wc</span></code> counting issue</li>
<li>[improvement] disable certain JDK classes e.g. <code class="docutils literal notranslate"><span class="pre">Classloader</span></code>, <code class="docutils literal notranslate"><span class="pre">Method</span></code>, <code class="docutils literal notranslate"><span class="pre">Integer</span></code> and the lik</li>
<li>[improvement] quit directly when encountering incorrect <a class="reference external" href="https://en.wikipedia.org/wiki/OGNL">OGNL</a> expression</li>
<li>[bug] fix <code class="docutils literal notranslate"><span class="pre">pipe</span></code> issues</li>
<li>[improvement] optimize command re-direct features using asynchronous log</li>
<li>[improvement] <a class="reference external" href="trace.md"><code class="docutils literal notranslate"><span class="pre">trace</span></code></a> can filter JDK method calls</li>
</ul>
</div>
<div class="section" id="v2017-09-22">
<span id="v2017-09-22"></span><h2>v2017-09-22<a class="headerlink" href="#v2017-09-22" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li>[improvement] improve the error message when starting agent and server fails</li>
<li>[bug] fix some asynchronous issues</li>
</ul>
</div>
<div class="section" id="v2017-09-11">
<span id="v2017-09-11"></span><h2>v2017-09-11<a class="headerlink" href="#v2017-09-11" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li>[improvement] <a class="reference external" href="async.md"><code class="docutils literal notranslate"><span class="pre">async</span></code></a> supported</li>
<li>[improvement] optimize <a class="reference external" href="jad.md"><code class="docutils literal notranslate"><span class="pre">jad</span></code></a> support JDK 8 and inner class</li>
<li>[bug] fix Chinese encoding issues</li>
</ul>
</div>
<div class="section" id="v2017-05-11">
<span id="v2017-05-11"></span><h2>v2017-05-11<a class="headerlink" href="#v2017-05-11" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li>[improvement] <a class="reference external" href="tt.md"><code class="docutils literal notranslate"><span class="pre">tt</span></code></a> investigating/recording level one to avoid too much performance overhea</li>
<li>[bug] fix Chinese characters can not be presented issue</li>
</ul>
</div>
<div class="section" id="v2017-05-12">
<span id="v2017-05-12"></span><h2>v2017-05-12<a class="headerlink" href="#v2017-05-12" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li>Arthas 3.0 release :confetti_ball:</li>
</ul>
</div>
<div class="section" id="v2016-12-09">
<span id="v2016-12-09"></span><h2>v2016-12-09<a class="headerlink" href="#v2016-12-09" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li>[feature] <a class="reference external" href="https://github.com/alibaba/arthas/blob/master/bin/as.sh"><code class="docutils literal notranslate"><span class="pre">as.sh</span></code></a> support <code class="docutils literal notranslate"><span class="pre">-h</span></code> to print help info</li>
<li>[bug] [#121] fix leftover temp files causing Arthas cannot start issue</li>
<li>[bug] [#123] fix <code class="docutils literal notranslate"><span class="pre">attach/shutdown</span></code> repeatedly causing Arthas classloader leakage issue</li>
<li>[improvement] make the help info more readable</li>
<li>[bug] [#126] fix the documents links issues</li>
<li>[bug] [#122] fix the <a class="reference external" href="classloader.md"><code class="docutils literal notranslate"><span class="pre">classloader</span></code></a> filtering out <code class="docutils literal notranslate"><span class="pre">sun.reflect.DelegatingClassLoader</span></code> issue</li>
<li>[bug] [#129] fix <a class="reference external" href="classloader.md"><code class="docutils literal notranslate"><span class="pre">classloader</span></code></a> presenting structure issues</li>
<li>[improvement] [#125] make the Arthas log output more readable</li>
<li>[improvement] [#96] <a class="reference external" href="sc.md"><code class="docutils literal notranslate"><span class="pre">sc</span></code></a> and more commands are supporting format as <code class="docutils literal notranslate"><span class="pre">com/taobao/xxx/TestClass</span></code></li>
<li>[bug] [#124] fix the negative values of <a class="reference external" href="trace.md"><code class="docutils literal notranslate"><span class="pre">trace</span></code></a></li>
<li>[improvement] [#128] the output of <a class="reference external" href="tt.md"><code class="docutils literal notranslate"><span class="pre">tt</span></code></a> will auto-expand now</li>
<li>[bug] [#130] providing more meaningful error messages when port conflicts</li>
<li>[bug] [#98] fix Arthas starting issue: when updating/downloading failed, Arthas will fail to start</li>
<li>[bug] [#139] fix agent attaching fails under some scenarios issues</li>
<li>[improvement] [#156] delay <code class="docutils literal notranslate"><span class="pre">jd-core-java</span></code> initialization to avoid Arthas starting failure</li>
<li>[bug] avoid thread names duplicate issue</li>
<li>[improvement] [#150] filtering by total time cost in <a class="reference external" href="trace.md"><code class="docutils literal notranslate"><span class="pre">trace</span></code></a></li>
<li>[bug] fix <a class="reference external" href="sc.md"><code class="docutils literal notranslate"><span class="pre">sc</span></code></a> <code class="docutils literal notranslate"><span class="pre">NPE</span></code> issue when searching <code class="docutils literal notranslate"><span class="pre">SystemClassloader</span></code></li>
<li>[bug] [#180] fix attach fails issues: attaching succeed at the first time, delete the Arthas installer, re-compile and package =&gt; attaching fails</li>
</ul>
</div>
<div class="section" id="v2016-06-07">
<span id="v2016-06-07"></span><h2>v2016-06-07<a class="headerlink" href="#v2016-06-07" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li>[bug] fix NPE when loading <code class="docutils literal notranslate"><span class="pre">spy</span></code> as resource</li>
<li>[improvement] locating the blocking thread</li>
<li>[improvement] print out thread in name order</li>
<li>[improvement] specify the refreshing interval when checking topN busiest threads</li>
</ul>
</div>
<div class="section" id="v2016-04-08">
<span id="v2016-04-08"></span><h2>v2016-04-08<a class="headerlink" href="#v2016-04-08" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li>[feature] specify refreshing interval and execution times in <a class="reference external" href="dashboard.md"><code class="docutils literal notranslate"><span class="pre">dashboard</span></code></a></li>
<li>[feature] log the command execution result</li>
<li>[feature] speed up the booting and attaching while the first attaching is even quicker by 100% than before</li>
<li>[feature] batch supported; script supported</li>
<li>[feature] interactive mode used in Arthas</li>
<li>[feature] inheritance relation included in class searching; global option <code class="docutils literal notranslate"><span class="pre">disable-sub-class</span></code> can be used to turn it off</li>
<li>[feature] colorful and plain text modes both supported</li>
<li>[improvement] merge <code class="docutils literal notranslate"><span class="pre">exit</span></code> and <code class="docutils literal notranslate"><span class="pre">quit</span></code> commands</li>
<li>[improvement] help info enclosed with wiki links</li>
<li>[improvement] optimize <a class="reference external" href="watch.md"><code class="docutils literal notranslate"><span class="pre">watch</span></code></a> using flow for better UX</li>
<li>[improvement] add examples to <a class="reference external" href="thread.md"><code class="docutils literal notranslate"><span class="pre">thread</span></code></a></li>
<li>[improvement] auto-completion ignores character case</li>
<li>[improvement] make the UI more beautiful/friendly</li>
<li>[bug] fix <a class="reference external" href="trace.md"><code class="docutils literal notranslate"><span class="pre">trace</span></code></a> printing too much encountering loop issues</li>
<li>[bug] fix <a class="reference external" href="trace.md"><code class="docutils literal notranslate"><span class="pre">trace</span></code></a> node twisting issues when method throwing exceptions</li>
<li>[bug] fix injected/enhanced <code class="docutils literal notranslate"><span class="pre">BootstrapClassLoader</span></code> cannot locate <code class="docutils literal notranslate"><span class="pre">spy</span></code> issues</li>
</ul>
</div>
<div class="section" id="v2016-03-07">
<span id="v2016-03-07"></span><h2>v2016-03-07<a class="headerlink" href="#v2016-03-07" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li>[feature] checking the topN thread and related stack traces</li>
<li>[bug] fix Arthas starting failure in OpenJdk issues (requiring to reinstall <a class="reference external" href="https://github.com/alibaba/arthas/blob/master/bin/as.sh">as.sh</a>)</li>
<li>[improvement] optimize UX</li>
</ul>
</div>
<div class="section" id="v2016-01-18">
<span id="v2016-01-18"></span><h2>v2016-01-18<a class="headerlink" href="#v2016-01-18" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li>[improvement] optimise <a class="reference external" href="jad.md"><code class="docutils literal notranslate"><span class="pre">jad</span></code></a>; dump memory byte array in real time; using <code class="docutils literal notranslate"><span class="pre">jd-core-java</span></code> to de-compile; line number presented;</li>
<li>[bug] fix checking/re-producing issues when <a class="reference external" href="tt.md"><code class="docutils literal notranslate"><span class="pre">tt</span></code></a> is watching thread-context related methods invoking</li>
</ul>
</div>
<div class="section" id="v2016-01-08">
<span id="v2016-01-08"></span><h2>v2016-01-08<a class="headerlink" href="#v2016-01-08" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li>[bug] jad NPE</li>
<li>[bug] watch/monitor NPE</li>
<li>[bug] wrong escaping issues</li>
<li>[bug] wrong statistics</li>
<li>[bug] <a class="reference external" href="sc.md"><code class="docutils literal notranslate"><span class="pre">sc</span></code></a> checking internal structure issues</li>
</ul>
</div>
<div class="section" id="v2015-12-29">
<span id="v2015-12-29"></span><h2>v2015-12-29<a class="headerlink" href="#v2015-12-29" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li>Arthas 2.0 Beta :boom:</li>
</ul>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="options.html" class="btn btn-neutral" title="options" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2018, Alibaba Middleware Group, and contributors.
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.0.5-SNAPSHOT',
LANGUAGE:'None',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas">Fork me at GitHub</a>
</div>
</div>
<script type="text/javascript" src="_static/add_badges.js"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?d5c5e25b100f0eb51a4c35c8a86ea9b4";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</body>
</html>

@ -0,0 +1,275 @@
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Log command outputs &mdash; Arthas 3.0.5-SNAPSHOT documentation</title>
<link rel="shortcut icon" href="_static/favicon.ico"/>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<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" />
<script src="_static/center_page.js"></script>
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="index.html" class="icon icon-home"> Arthas
</a>
<div class="version">
3.0.5-SNAPSHOT
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li>
<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"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Arthas</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li>Log command outputs</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/alibaba/arthas/blob/master/site/src/site/sphinx/save-log.md" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="log-command-outputs">
<span id="log-command-outputs"></span><h1>Log command outputs<a class="headerlink" href="#log-command-outputs" title="Permalink to this headline"></a></h1>
<p>Log command outputs for later analysis, turned off by default.</p>
<p>To turn it on, using <a class="reference internal" href="options.html"><span class="doc">options</span></a> as:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ options save-result <span class="nb">true</span>
NAME BEFORE-VALUE AFTER-VALUE
----------------------------------------
save-result <span class="nb">false</span> <span class="nb">true</span>
Affect<span class="o">(</span>row-cnt:1<span class="o">)</span> cost in <span class="m">3</span> ms.
</pre></div>
</div>
<p>F.Y.I</p>
<ol class="simple">
<li>logging file lies in: <code class="docutils literal notranslate"><span class="pre">{user.home}/logs/arthas-cache/result.log</span></code>;</li>
<li>remember to clean up the file to save disk space.</li>
</ol>
<div class="section" id="asynchronous-log">
<span id="asynchronous-log"></span><h2>Asynchronous log<a class="headerlink" href="#asynchronous-log" title="Permalink to this headline"></a></h2>
<p>:notes: :notes:
With the latest Arthas, you can log the outputs asynchronously in the background:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ trace Test t &gt;&gt; <span class="p">&amp;</span>
job id : <span class="m">2</span>
cache location : /Users/zhuyong/logs/arthas-cache/28198/2
</pre></div>
</div>
<p>F.Y.I</p>
<ol class="simple">
<li><code class="docutils literal notranslate"><span class="pre">quit/exit</span></code> or <code class="docutils literal notranslate"><span class="pre">Ctrl+C</span></code> will not affect the asynchronous jobs :sparkles:;</li>
<li>default timeout for the background job is 1 day (you can set it via <a class="reference internal" href="options.html"><span class="doc">options</span></a>);</li>
<li>outputs will be save to the <code class="docutils literal notranslate"><span class="pre">cache</span> <span class="pre">location</span></code> now (no matter what <code class="docutils literal notranslate"><span class="pre">save-result</span></code> is - not <code class="docutils literal notranslate"><span class="pre">~/logs/arthas-cache/result.log</span></code> any more).</li>
</ol>
</div>
</div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2018, Alibaba Middleware Group, and contributors.
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'3.0.5-SNAPSHOT',
LANGUAGE:'None',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas">Fork me at GitHub</a>
</div>
</div>
<script type="text/javascript" src="_static/add_badges.js"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?d5c5e25b100f0eb51a4c35c8a86ea9b4";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</body>
</html>

@ -93,35 +93,34 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li> <li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li> <li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li> <li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li> <li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">sc</a><ul> <li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l3"><a class="reference internal" href="#options">Options</a><ul> <li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l4"><a class="reference internal" href="#specification">Specification</a></li> <li class="toctree-l3 current"><a class="current reference internal" href="#">sc</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li> <li class="toctree-l4"><a class="reference internal" href="#options">Options</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l3"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l3"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l3"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l3"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li>
<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="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>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas-basic-commands">Arthas Basic Commands</a></li>
</ul> </ul>
</li> </li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -170,7 +169,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">Commands List</a> &raquo;</li> <li><a href="commands.html">All Commands</a> &raquo;</li>
<li>sc</li> <li>sc</li>
@ -196,7 +195,7 @@
<div class="section" id="sc"> <div class="section" id="sc">
<span id="sc"></span><h1>sc<a class="headerlink" href="#sc" title="Permalink to this headline"></a></h1> <span id="sc"></span><h1>sc<a class="headerlink" href="#sc" title="Permalink to this headline"></a></h1>
<p>Check the profiles of the loaded classes.</p> <p>Check the profiles of the loaded classes.</p>
<p>Abbreviated from “Search-Class”; with the help of this command, you can search out all the loaded classes in JVM. Supported options are: <code class="docutils literal notranslate"><span class="pre">[d]</span></code><code class="docutils literal notranslate"><span class="pre">[E]</span></code><code class="docutils literal notranslate"><span class="pre">[f]</span></code> and <code class="docutils literal notranslate"><span class="pre">[x:]</span></code>.</p> <p>Abbreviated from <em>Search-Class</em>; with the help of this command, you can search out all the loaded classes in JVM. Supported options are: <code class="docutils literal notranslate"><span class="pre">[d]</span></code><code class="docutils literal notranslate"><span class="pre">[E]</span></code><code class="docutils literal notranslate"><span class="pre">[f]</span></code> and <code class="docutils literal notranslate"><span class="pre">[x:]</span></code>.</p>
<div class="section" id="options"> <div class="section" id="options">
<span id="options"></span><h2>Options<a class="headerlink" href="#options" title="Permalink to this headline"></a></h2> <span id="options"></span><h2>Options<a class="headerlink" href="#options" title="Permalink to this headline"></a></h2>
<div class="section" id="specification"> <div class="section" id="specification">
@ -227,7 +226,7 @@
</tr> </tr>
<tr> <tr>
<td align="right">[f]</td> <td align="right">[f]</td>
<td align="left">print the fields info of the current class, which should be used along with <code>-d</code></td> <td align="left">print the fields info of the current class, which <strong><em>must</em></strong> be used with <code>-d</code></td>
</tr> </tr>
<tr> <tr>
<td align="right">[x:]</td> <td align="right">[x:]</td>
@ -237,7 +236,7 @@
</table><p>Tip:</p> </table><p>Tip:</p>
<ol class="simple"> <ol class="simple">
<li><em>class-patten</em> supports full qualified class name (e.g. com.taobao.test.AAA and com/taobao/test/AAA)</li> <li><em>class-patten</em> supports full qualified class name (e.g. com.taobao.test.AAA and com/taobao/test/AAA)</li>
<li><code class="docutils literal notranslate"><span class="pre">sc</span></code> turned on the <code class="docutils literal notranslate"><span class="pre">sub-class</span></code> matching in default mode, if you do want to hide the <code class="docutils literal notranslate"><span class="pre">sub-class</span></code> please just turn it off via <code class="docutils literal notranslate"><span class="pre">options</span> <span class="pre">disable-sub-class</span> <span class="pre">true</span></code>.</li> <li><code class="docutils literal notranslate"><span class="pre">sc</span></code> turned on the <code class="docutils literal notranslate"><span class="pre">sub-class</span></code> matching in default mode; if you do want to hide <code class="docutils literal notranslate"><span class="pre">sub-class</span></code>, you can just turn it off with <a class="reference internal" href="options.html"><span class="doc">options</span></a> as <code class="docutils literal notranslate"><span class="pre">options</span> <span class="pre">disable-sub-class</span> <span class="pre">true</span></code>.</li>
</ol> </ol>
</div> </div>
<div class="section" id="usage"> <div class="section" id="usage">

@ -92,7 +92,7 @@
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li> <li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>

File diff suppressed because one or more lines are too long

@ -93,32 +93,35 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li> <li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li> <li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li> <li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li> <li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li> <li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">sm</a><ul> <li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l3"><a class="reference internal" href="#options">Options</a></li> <li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l3"><a class="reference internal" href="#usage">Usage</a></li> <li class="toctree-l3 current"><a class="current reference internal" href="#">sm</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#options">Options</a></li>
<li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l3"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l3"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l3"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li>
<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="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>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas-basic-commands">Arthas Basic Commands</a></li>
</ul> </ul>
</li> </li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -167,7 +170,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">Commands List</a> &raquo;</li> <li><a href="commands.html">All Commands</a> &raquo;</li>
<li>sm</li> <li>sm</li>
@ -193,7 +196,7 @@
<div class="section" id="sm"> <div class="section" id="sm">
<span id="sm"></span><h1>sm<a class="headerlink" href="#sm" title="Permalink to this headline"></a></h1> <span id="sm"></span><h1>sm<a class="headerlink" href="#sm" title="Permalink to this headline"></a></h1>
<p>Check the method profile of the loaded classes;</p> <p>Check the method profile of the loaded classes;</p>
<p>Abbreviated from “Search-Method”, with which you can search out all methods profiles of the loaded classes.</p> <p>Abbreviated from <em>Search-Method</em>, with which you can check all methods profiles of the loaded classes.</p>
<p>F.Y.I <p>F.Y.I
<code class="docutils literal notranslate"><span class="pre">sm</span></code> only shows the methods declared in the current class; methods declared in ancestors will not be presented.</p> <code class="docutils literal notranslate"><span class="pre">sm</span></code> only shows the methods declared in the current class; methods declared in ancestors will not be presented.</p>
<div class="section" id="options"> <div class="section" id="options">
@ -220,7 +223,7 @@
</tr> </tr>
<tr> <tr>
<td align="right">[E]</td> <td align="right">[E]</td>
<td align="left">turn the regex matching on while the default mode is wildcards matching</td> <td align="left">turn on regex matching while the default mode is wildcard matching</td>
</tr> </tr>
</tbody> </tbody>
</table></div> </table></div>

@ -93,37 +93,35 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li> <li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li> <li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li> <li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li> <li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li> <li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li> <li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li> <li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li> <li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li> <li class="toctree-l3"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li> <li class="toctree-l3"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li> <li class="toctree-l3"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li> <li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li> <li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">stack</a><ul> <li class="toctree-l3"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l3"><a class="reference internal" href="#parameters">Parameters</a><ul> <li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l4"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/advice-class.md">Critical fields in expression</a></li> <li class="toctree-l3 current"><a class="current reference internal" href="#">stack</a><ul>
<li class="toctree-l4"><a class="reference external" href="https://github.com/alibaba/arthas/issues/71">Special usage</a></li> <li class="toctree-l4"><a class="reference internal" href="#parameters">Parameters</a></li>
<li class="toctree-l4"><a class="reference external" href="https://commons.apache.org/proper/commons-ognl/language-guide.html">OGNL official guide</a></li> <li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l3"><a class="reference internal" href="#usage">Usage</a></li> <li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas-basic-commands">Arthas Basic Commands</a></li>
</ul> </ul>
</li> </li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -172,7 +170,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">Commands List</a> &raquo;</li> <li><a href="commands.html">All Commands</a> &raquo;</li>
<li>stack</li> <li>stack</li>
@ -218,32 +216,32 @@
<td align="left">pattern for the method name</td> <td align="left">pattern for the method name</td>
</tr> </tr>
<tr> <tr>
<td align="right"><em>condition-express</em></td> <td align="right"><em>condition-expression</em></td>
<td align="left">condition expression</td> <td align="left">condition expression</td>
</tr> </tr>
<tr> <tr>
<td align="right">[E]</td> <td align="right">[E]</td>
<td align="left">turn on regx matching while the default is wildcards matching</td> <td align="left">turn on regex matching while the default is wildcard matching</td>
</tr> </tr>
<tr> <tr>
<td align="right"><code>[n:]</code></td> <td align="right">[n:]</td>
<td align="left">calling times</td> <td align="left">calling times</td>
</tr> </tr>
</tbody> </tbody>
</table><p>F.Y.I</p> </table><p>F.Y.I</p>
<ol class="simple"> <ol class="simple">
<li>any valid OGNL expression as <code class="docutils literal notranslate"><span class="pre">&quot;{params,returnObj}&quot;</span></code> supported;</li> <li>any valid OGNL expression as <code class="docutils literal notranslate"><span class="pre">&quot;{params,returnObj}&quot;</span></code> supported;</li>
<li>filter by time cost as <code class="docutils literal notranslate"><span class="pre">trace</span> <span class="pre">*StringUtils</span> <span class="pre">isBlank</span> <span class="pre">'$cost&gt;100'</span></code>; calling stack with only time cost higher than <code class="docutils literal notranslate"><span class="pre">100ms</span></code> will be printed.</li> <li>filter by time cost as <code class="docutils literal notranslate"><span class="pre">trace</span> <span class="pre">*StringUtils</span> <span class="pre">isBlank</span> <span class="pre">'#cost&gt;100'</span></code>; calling stack with only time cost higher than <code class="docutils literal notranslate"><span class="pre">100ms</span></code> will be printed.</li>
</ol> </ol>
<p>Attention:</p> <p>Attention:</p>
<ol class="simple"> <ol class="simple">
<li><code class="docutils literal notranslate"><span class="pre">$cost</span></code> can be used in <code class="docutils literal notranslate"><span class="pre">watch/stack/trace</span></code>;</li> <li><code class="docutils literal notranslate"><span class="pre">#cost</span></code> can be used in <code class="docutils literal notranslate"><span class="pre">watch/stack/trace</span></code>;</li>
<li>using <code class="docutils literal notranslate"><span class="pre">#cost</span></code> in Arthas 3.0 instead of <code class="docutils literal notranslate"><span class="pre">$cost</span></code>.</li> <li>using <code class="docutils literal notranslate"><span class="pre">#cost</span></code> in Arthas 3.0 instead of <code class="docutils literal notranslate"><span class="pre">$cost</span></code>.</li>
</ol> </ol>
<p>Advanced:</p> <p>Advanced:</p>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
<ul> <ul>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/advice-class.md">Critical fields in expression</a></li> <li class="toctree-l1"><a class="reference internal" href="advice-class.html">Critical fields in expression</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues/71">Special usage</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues/71">Special usage</a></li>
<li class="toctree-l1"><a class="reference external" href="https://commons.apache.org/proper/commons-ognl/language-guide.html">OGNL official guide</a></li> <li class="toctree-l1"><a class="reference external" href="https://commons.apache.org/proper/commons-ognl/language-guide.html">OGNL official guide</a></li>
</ul> </ul>
@ -251,7 +249,7 @@
</div> </div>
<div class="section" id="usage"> <div class="section" id="usage">
<span id="usage"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2> <span id="usage"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2>
<p>The quoting rules: if there are quotes within the expression, use another type of quotes to quote the whole expression.</p> <p>The quoting rules: if there are quotes within the expression, use another type of quotes to quote the whole expression (single <code class="docutils literal notranslate"><span class="pre">''</span></code> or double <code class="docutils literal notranslate"><span class="pre">&quot;&quot;</span></code> quotes).</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ stack com.alibaba.sample.petstore.dal.dao.ProductDao getProductById &#39;params[0]==&quot;K9-BD-01&quot;&#39; <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ stack com.alibaba.sample.petstore.dal.dao.ProductDao getProductById &#39;params[0]==&quot;K9-BD-01&quot;&#39;
Press Ctrl+C to abort. Press Ctrl+C to abort.
Affect(class-cnt:1 , method-cnt:1) cost in 51 ms. Affect(class-cnt:1 , method-cnt:1) cost in 51 ms.
@ -285,7 +283,7 @@ thread_name=&quot;http-bio-8080-exec-2&quot; thread_id=0x48;is_daemon=true;prior
at com.alibaba.citrus.service.pipeline.impl.PipelineImpl$PipelineContextImpl.invoke(PipelineImpl.java:210) at com.alibaba.citrus.service.pipeline.impl.PipelineImpl$PipelineContextImpl.invoke(PipelineImpl.java:210)
at com.alibaba.citrus.service.pipeline.impl.valve.ChooseValve.invoke(ChooseValve.java:98) at com.alibaba.citrus.service.pipeline.impl.valve.ChooseValve.invoke(ChooseValve.java:98)
at com.alibaba.citrus.service.pipeline.impl.PipelineImpl$PipelineContextImpl.invokeNext(PipelineImpl.java:157) at com.alibaba.citrus.service.pipeline.impl.PipelineImpl$PipelineContextImpl.invokeNext(PipelineImpl.java:157)
...... ...
</pre></div> </pre></div>
</div> </div>
<p>Filtering by time cost:</p> <p>Filtering by time cost:</p>
@ -325,7 +323,7 @@ thread_name=http-nio-8080-exec-10;id=31;is_daemon=true;priority=5;TCCL=com.taoba
at com.alibaba.citrus.webx.impl.WebxControllerImpl.service(WebxControllerImpl.java:43) at com.alibaba.citrus.webx.impl.WebxControllerImpl.service(WebxControllerImpl.java:43)
at com.alibaba.citrus.webx.impl.WebxRootControllerImpl.handleRequest(WebxRootControllerImpl.java:53) at com.alibaba.citrus.webx.impl.WebxRootControllerImpl.handleRequest(WebxRootControllerImpl.java:53)
at com.alibaba.citrus.webx.support.AbstractWebxRootController.service(AbstractWebxRootController.java:165) at com.alibaba.citrus.webx.support.AbstractWebxRootController.service(AbstractWebxRootController.java:165)
......... ...
</pre></div> </pre></div>
</div> </div>
</div> </div>

@ -92,7 +92,7 @@
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li> <li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>

@ -93,36 +93,34 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li> <li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li> <li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">sysprop</a><ul> <li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l3"><a class="reference internal" href="#usage">Usage</a><ul> <li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l4"><a class="reference internal" href="#check-all-properties">Check all properties</a></li> <li class="toctree-l3 current"><a class="current reference internal" href="#">sysprop</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#check-a-single-property">Check a single property</a></li> <li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="#modify-a-single-property">Modify a single property</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l3"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l3"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l3"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l3"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li>
<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="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>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas-basic-commands">Arthas Basic Commands</a></li>
</ul> </ul>
</li> </li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -171,7 +169,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">Commands List</a> &raquo;</li> <li><a href="commands.html">All Commands</a> &raquo;</li>
<li>sysprop</li> <li>sysprop</li>

@ -93,39 +93,35 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">thread</a><ul> <li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="#parameters">Parameters</a></li> <li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l3"><a class="reference internal" href="#usage">Usage</a><ul> <li class="toctree-l3 current"><a class="current reference internal" href="#">thread</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#list-the-top-n-busiest-with-detailed-stack-trace">List the top n busiest with detailed stack trace</a></li> <li class="toctree-l4"><a class="reference internal" href="#parameters">Parameters</a></li>
<li class="toctree-l4"><a class="reference internal" href="#list-all-info-when-no-options-provided">List all info when no options provided</a></li> <li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="#thread-thread-id-present-the-specified-thread-profile">thread &lt;thread_id&gt; present the specified thread profile</a></li>
<li class="toctree-l4"><a class="reference internal" href="#thread-b-locate-the-blocking-threads">thread -b locate the blocking threads</a></li>
<li class="toctree-l4"><a class="reference internal" href="#thread-i-specify-the-collecting-interval">thread -i specify the collecting interval</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l3"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l3"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l3"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l3"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li>
<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="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>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas-basic-commands">Arthas Basic Commands</a></li>
</ul> </ul>
</li> </li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -174,7 +170,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">Commands List</a> &raquo;</li> <li><a href="commands.html">All Commands</a> &raquo;</li>
<li>thread</li> <li>thread</li>

@ -32,7 +32,7 @@
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
<link rel="next" title="stack" href="stack.html" /> <link rel="next" title="stack" href="stack.html" />
<link rel="prev" title="watch" href="watch.html" /> <link rel="prev" title="Critical Fields in Expressions" href="advice-class.html" />
<script src="_static/center_page.js"></script> <script src="_static/center_page.js"></script>
@ -93,37 +93,35 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li> <li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li> <li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li> <li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li> <li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li> <li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li> <li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li> <li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li> <li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li> <li class="toctree-l3"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li> <li class="toctree-l3"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li> <li class="toctree-l3"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li> <li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">trace</a><ul> <li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l3"><a class="reference internal" href="#parameters">Parameters</a><ul> <li class="toctree-l3"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l4"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/advice-class.md">Critical fields in expression</a></li> <li class="toctree-l3 current"><a class="current reference internal" href="#">trace</a><ul>
<li class="toctree-l4"><a class="reference external" href="https://github.com/alibaba/arthas/issues/71">Special usage</a></li> <li class="toctree-l4"><a class="reference internal" href="#parameters">Parameters</a></li>
<li class="toctree-l4"><a class="reference external" href="https://commons.apache.org/proper/commons-ognl/language-guide.html">OGNL official guide</a></li> <li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l3"><a class="reference internal" href="#usage">Usage</a></li> <li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas-basic-commands">Arthas Basic Commands</a></li>
</ul> </ul>
</li> </li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -172,7 +170,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">Commands List</a> &raquo;</li> <li><a href="commands.html">All Commands</a> &raquo;</li>
<li>trace</li> <li>trace</li>
@ -197,7 +195,7 @@
<div class="section" id="trace"> <div class="section" id="trace">
<span id="trace"></span><h1>trace<a class="headerlink" href="#trace" title="Permalink to this headline"></a></h1> <span id="trace"></span><h1>trace<a class="headerlink" href="#trace" title="Permalink to this headline"></a></h1>
<p>Track the <code class="docutils literal notranslate"><span class="pre">class-pattern</span></code> &amp; <code class="docutils literal notranslate"><span class="pre">method-pattern</span></code> matched method calling trace and print the time cost in each call.</p> <p>Track methods calling stack trace and print the time cost in each call.</p>
<div class="section" id="parameters"> <div class="section" id="parameters">
<span id="parameters"></span><h2>Parameters<a class="headerlink" href="#parameters" title="Permalink to this headline"></a></h2> <span id="parameters"></span><h2>Parameters<a class="headerlink" href="#parameters" title="Permalink to this headline"></a></h2>
<table border="1" class="docutils"> <table border="1" class="docutils">
@ -225,29 +223,29 @@
<td align="left">turn on regx matching while the default is wildcards matching</td> <td align="left">turn on regx matching while the default is wildcards matching</td>
</tr> </tr>
<tr> <tr>
<td align="right"><code>[n:]</code></td> <td align="right">[n:]</td>
<td align="left">calling times</td> <td align="left">calling times</td>
</tr> </tr>
<tr> <tr>
<td align="right"><code>#cost</code></td> <td align="right">#cost</td>
<td align="left">time cost</td> <td align="left">time cost</td>
</tr> </tr>
</tbody> </tbody>
</table><p>F.Y.I</p> </table><p>F.Y.I</p>
<ol class="simple"> <ol class="simple">
<li>any valid OGNL expression as <code class="docutils literal notranslate"><span class="pre">&quot;{params,returnObj}&quot;</span></code> supported;</li> <li>any valid OGNL expression as <code class="docutils literal notranslate"><span class="pre">&quot;{params,returnObj}&quot;</span></code> supported;</li>
<li>filter by time cost as <code class="docutils literal notranslate"><span class="pre">trace</span> <span class="pre">*StringUtils</span> <span class="pre">isBlank</span> <span class="pre">'$cost&gt;100'</span></code>; calling stack with only time cost higher than <code class="docutils literal notranslate"><span class="pre">100ms</span></code> will be printed.</li> <li>filter by time cost as <code class="docutils literal notranslate"><span class="pre">trace</span> <span class="pre">*StringUtils</span> <span class="pre">isBlank</span> <span class="pre">'#cost&gt;100'</span></code>; calling stack with only time cost higher than <code class="docutils literal notranslate"><span class="pre">100ms</span></code> will be printed.</li>
</ol> </ol>
<p>Attention:</p> <p>Attention:</p>
<ol class="simple"> <ol class="simple">
<li><code class="docutils literal notranslate"><span class="pre">$cost</span></code> can be used in <code class="docutils literal notranslate"><span class="pre">watch/stack/trace</span></code>;</li> <li><code class="docutils literal notranslate"><span class="pre">#cost</span></code> can be used in <code class="docutils literal notranslate"><span class="pre">watch/stack/trace</span></code>;</li>
<li>using <code class="docutils literal notranslate"><span class="pre">#cost</span></code> in Arthas 3.0 instead of <code class="docutils literal notranslate"><span class="pre">$cost</span></code>.</li> <li>using <code class="docutils literal notranslate"><span class="pre">#cost</span></code> in Arthas 3.0 instead of <code class="docutils literal notranslate"><span class="pre">$cost</span></code>.</li>
<li><code class="docutils literal notranslate"><span class="pre">trace</span></code> can help to locate the performance lurking issue but only <code class="docutils literal notranslate"><span class="pre">level-one</span></code> method invoking considered.</li> <li><code class="docutils literal notranslate"><span class="pre">trace</span></code> can help to locate the performance lurking issue but only <code class="docutils literal notranslate"><span class="pre">level-one</span></code> method invoking considered.</li>
</ol> </ol>
<p>Advanced:</p> <p>Advanced:</p>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
<ul> <ul>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/advice-class.md">Critical fields in expression</a></li> <li class="toctree-l1"><a class="reference internal" href="advice-class.html">Critical fields in expression</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues/71">Special usage</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues/71">Special usage</a></li>
<li class="toctree-l1"><a class="reference external" href="https://commons.apache.org/proper/commons-ognl/language-guide.html">OGNL official guide</a></li> <li class="toctree-l1"><a class="reference external" href="https://commons.apache.org/proper/commons-ognl/language-guide.html">OGNL official guide</a></li>
</ul> </ul>
@ -319,9 +317,9 @@ trace com.alibaba.sample.petstore.web.store.module.screen.ItemList execute <span
<p>Only the calling trace of the time cost higher than <code class="docutils literal notranslate"><span class="pre">4ms</span></code>presented now.</p> <p>Only the calling trace of the time cost higher than <code class="docutils literal notranslate"><span class="pre">4ms</span></code>presented now.</p>
<p>F.Y.I</p> <p>F.Y.I</p>
<ol class="simple"> <ol class="simple">
<li>just like JProfile and the like commercial software, you can <code class="docutils literal notranslate"><span class="pre">trace</span></code> down the specified method calling in Arthas;</li> <li>like JProfile and other similar commercial software, you can <code class="docutils literal notranslate"><span class="pre">trace</span></code> down the specified method calling stack with time cost in Arthas;</li>
<li>there will be some overhead using <code class="docutils literal notranslate"><span class="pre">trace</span></code> but not much;</li> <li>there will be some overhead using <code class="docutils literal notranslate"><span class="pre">trace</span></code> but not much;</li>
<li>the time cost is an instructive clue for troubleshooting, which means its not that accurate ignoring the cost it itself causes; the deeper or more the call is, the accuracy is becoming worse;</li> <li>the time cost is an instructive clue for troubleshooting, which means its not that accurate ignoring the cost it itself causes; the deeper or more the call is, the worse accuracy the time cost will be;</li>
<li><code class="docutils literal notranslate"><span class="pre">[0,0,0ms,11]xxx:yyy()</span> <span class="pre">[throws</span> <span class="pre">Exception]</span></code>the same method calling aggregated into one line here while <code class="docutils literal notranslate"><span class="pre">throws</span> <span class="pre">Exception</span></code> indicates there is an exception.</li> <li><code class="docutils literal notranslate"><span class="pre">[0,0,0ms,11]xxx:yyy()</span> <span class="pre">[throws</span> <span class="pre">Exception]</span></code>the same method calling aggregated into one line here while <code class="docutils literal notranslate"><span class="pre">throws</span> <span class="pre">Exception</span></code> indicates there is an exception.</li>
</ol> </ol>
</div> </div>
@ -338,7 +336,7 @@ trace com.alibaba.sample.petstore.web.store.module.screen.ItemList execute <span
<a href="stack.html" class="btn btn-neutral float-right" title="stack" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> <a href="stack.html" class="btn btn-neutral float-right" title="stack" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="watch.html" class="btn btn-neutral" title="watch" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> <a href="advice-class.html" class="btn btn-neutral" title="Critical Fields in Expressions" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div> </div>

@ -93,43 +93,37 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li> <li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li> <li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li> <li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li> <li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li> <li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li> <li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li> <li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li> <li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li> <li class="toctree-l3"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li> <li class="toctree-l3"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li> <li class="toctree-l3"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li> <li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li> <li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li> <li class="toctree-l3"><a class="reference internal" href="watch.html">watch</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">tt</a><ul> <li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l3"><a class="reference internal" href="#usage">Usage</a><ul> <li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l4"><a class="reference internal" href="#f-y-i">F.Y.I</a></li> <li class="toctree-l3 current"><a class="current reference internal" href="#">tt</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#property">Property</a></li> <li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="#condition-expression">Condition expression</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="#re-produce">Re-produce</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l3"><a class="reference internal" href="#searching-for-records">Searching for records</a><ul> <li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l4"><a class="reference internal" href="#a-specified-time-range">A specified time range</a></li>
<li class="toctree-l4"><a class="reference internal" href="#a-specified-method">A specified method</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l3"><a class="reference internal" href="#check-context-of-the-call">Check context of the call</a></li>
<li class="toctree-l3"><a class="reference internal" href="#re-produce">Re-produce</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas-basic-commands">Arthas Basic Commands</a></li>
</ul> </ul>
</li> </li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -178,7 +172,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">Commands List</a> &raquo;</li> <li><a href="commands.html">All Commands</a> &raquo;</li>
<li>tt</li> <li>tt</li>
@ -203,10 +197,10 @@
<div class="section" id="tt"> <div class="section" id="tt">
<span id="tt"></span><h1>tt<a class="headerlink" href="#tt" title="Permalink to this headline"></a></h1> <span id="tt"></span><h1>tt<a class="headerlink" href="#tt" title="Permalink to this headline"></a></h1>
<p>Check the parameters, return values and exceptions of the methods at different times.</p> <p>Check the <code class="docutils literal notranslate"><span class="pre">parameters</span></code>, <code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">values</span></code> and <code class="docutils literal notranslate"><span class="pre">exceptions</span></code> of the methods at different times.</p>
<p><code class="docutils literal notranslate"><span class="pre">watch</span></code> is a powerful command but due to its feasibility and complexity, its quite hard to locate the issue effectively.</p> <p><code class="docutils literal notranslate"><span class="pre">watch</span></code> is a powerful command but due to its feasibility and complexity, its quite hard to locate the issue effectively.</p>
<p>In such difficulties, <code class="docutils literal notranslate"><span class="pre">tt</span></code> comes into play.</p> <p>In such difficulties, <code class="docutils literal notranslate"><span class="pre">tt</span></code> comes into play.</p>
<p>With the help of <code class="docutils literal notranslate"><span class="pre">tt</span></code> (abbreviated from <em>TimeTunnel</em>), you can check the contexts of the methods at different times.</p> <p>With the help of <code class="docutils literal notranslate"><span class="pre">tt</span></code> (<em>TimeTunnel</em>), you can check the contexts of the methods at different times in execution history.</p>
<div class="section" id="usage"> <div class="section" id="usage">
<span id="usage"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2> <span id="usage"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2>
<p>Lets record the whole calling contexts:</p> <p>Lets record the whole calling contexts:</p>
@ -232,7 +226,7 @@
<p>record the calling context of the method <code class="docutils literal notranslate"><span class="pre">*Test.print</span></code></p> <p>record the calling context of the method <code class="docutils literal notranslate"><span class="pre">*Test.print</span></code></p>
</li> </li>
<li><p class="first"><code class="docutils literal notranslate"><span class="pre">-n</span> <span class="pre">3</span></code></p> <li><p class="first"><code class="docutils literal notranslate"><span class="pre">-n</span> <span class="pre">3</span></code></p>
<p>limit the number of the records (avoid overflow for too many records; with <code class="docutils literal notranslate"><span class="pre">-n</span></code> option, Arthas can automatically stop recording once the records reach the limit)</p> <p>limit the number of the records (avoid overflow for too many records; with <code class="docutils literal notranslate"><span class="pre">-n</span></code> option, Arthas can automatically stop recording once the records reach the specified limit)</p>
</li> </li>
</ul> </ul>
</div> </div>
@ -260,11 +254,11 @@
</tr> </tr>
<tr> <tr>
<td>IS-RET</td> <td>IS-RET</td>
<td>end with normal return</td> <td>whether method exits with normal return</td>
</tr> </tr>
<tr> <tr>
<td>IS-EXP</td> <td>IS-EXP</td>
<td>end with exceptions</td> <td>whether method failed with exceptions</td>
</tr> </tr>
<tr> <tr>
<td>OBJECT</td> <td>OBJECT</td>
@ -284,14 +278,14 @@
<span id="condition-expression"></span><h3>Condition expression<a class="headerlink" href="#condition-expression" title="Permalink to this headline"></a></h3> <span id="condition-expression"></span><h3>Condition expression<a class="headerlink" href="#condition-expression" title="Permalink to this headline"></a></h3>
<p>Tips:</p> <p>Tips:</p>
<ol class="simple"> <ol class="simple">
<li><code class="docutils literal notranslate"><span class="pre">tt</span> <span class="pre">-t</span> <span class="pre">*Test</span> <span class="pre">print</span> <span class="pre">params[0].length==1</span></code> with different amount of parameters;</li> <li><code class="docutils literal notranslate"><span class="pre">tt</span> <span class="pre">-t</span> <span class="pre">*Test</span> <span class="pre">print</span> <span class="pre">params[0].length==1</span></code> with different amounts of parameters;</li>
<li><code class="docutils literal notranslate"><span class="pre">tt</span> <span class="pre">-t</span> <span class="pre">*Test</span> <span class="pre">print</span> <span class="pre">'params[1]</span> <span class="pre">instanceof</span> <span class="pre">Integer'</span></code> with different types of parameters;</li> <li><code class="docutils literal notranslate"><span class="pre">tt</span> <span class="pre">-t</span> <span class="pre">*Test</span> <span class="pre">print</span> <span class="pre">'params[1]</span> <span class="pre">instanceof</span> <span class="pre">Integer'</span></code> with different types of parameters;</li>
<li><code class="docutils literal notranslate"><span class="pre">tt</span> <span class="pre">-t</span> <span class="pre">*Test</span> <span class="pre">print</span> <span class="pre">params[0].mobile==&quot;13989838402&quot;</span></code> with specified parameter.</li> <li><code class="docutils literal notranslate"><span class="pre">tt</span> <span class="pre">-t</span> <span class="pre">*Test</span> <span class="pre">print</span> <span class="pre">params[0].mobile==&quot;13989838402&quot;</span></code> with specified parameter.</li>
</ol> </ol>
<p>Advanced:</p> <p>Advanced:</p>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
<ul> <ul>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/advice-class.md">Critical fields in expression</a></li> <li class="toctree-l1"><a class="reference internal" href="advice-class.html">Critical fields in expression</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues/71">Special usage</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues/71">Special usage</a></li>
<li class="toctree-l1"><a class="reference external" href="https://commons.apache.org/proper/commons-ognl/language-guide.html">OGNL official guide</a></li> <li class="toctree-l1"><a class="reference external" href="https://commons.apache.org/proper/commons-ognl/language-guide.html">OGNL official guide</a></li>
</ul> </ul>
@ -300,8 +294,8 @@
</div> </div>
<div class="section" id="searching-for-records"> <div class="section" id="searching-for-records">
<span id="searching-for-records"></span><h2>Searching for records<a class="headerlink" href="#searching-for-records" title="Permalink to this headline"></a></h2> <span id="searching-for-records"></span><h2>Searching for records<a class="headerlink" href="#searching-for-records" title="Permalink to this headline"></a></h2>
<div class="section" id="a-specified-time-range"> <div class="section" id="all-the-recorded">
<span id="a-specified-time-range"></span><h3>A specified time range<a class="headerlink" href="#a-specified-time-range" title="Permalink to this headline"></a></h3> <span id="all-the-recorded"></span><h3>All the recorded<a class="headerlink" href="#all-the-recorded" title="Permalink to this headline"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ tt -l <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ tt -l
+----------+----------------------+------------+----------+----------+-----------------+--------------------------------+--------------------------------+ +----------+----------------------+------------+----------+----------+-----------------+--------------------------------+--------------------------------+
| INDEX | TIMESTAMP | COST(ms) | IS-RET | IS-EXP | OBJECT | CLASS | METHOD | | INDEX | TIMESTAMP | COST(ms) | IS-RET | IS-EXP | OBJECT | CLASS | METHOD |
@ -342,7 +336,7 @@ $
<p>Advanced:</p> <p>Advanced:</p>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
<ul> <ul>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/advice-class.md">Critical fields in expression</a></li> <li class="toctree-l1"><a class="reference internal" href="advice-class.html">Critical fields in expression</a></li>
</ul> </ul>
</div> </div>
</div> </div>
@ -383,7 +377,7 @@ $
</div> </div>
<div class="section" id="re-produce"> <div class="section" id="re-produce">
<span id="re-produce"></span><h2>Re-produce<a class="headerlink" href="#re-produce" title="Permalink to this headline"></a></h2> <span id="re-produce"></span><h2>Re-produce<a class="headerlink" href="#re-produce" title="Permalink to this headline"></a></h2>
<p>Since Arthas stores the context of the call, you can even re-produce the method calling after some modifications with extra option <code class="docutils literal notranslate"><span class="pre">-p</span></code>.</p> <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 re-produce the issue for advanced troubleshooting.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ tt -i 1003 -p <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ tt -i 1003 -p
+-----------------+---------------------------------------------------------------------------------------------------------+ +-----------------+---------------------------------------------------------------------------------------------------------+
| RE-INDEX | 1003 | | RE-INDEX | 1003 |
@ -424,9 +418,9 @@ $
</div> </div>
<p>F.Y.I</p> <p>F.Y.I</p>
<ol class="simple"> <ol class="simple">
<li>the calling stack is little different using Arthas now instead of the original method;</li> <li>the calling stack is little different using Arthas now unlike the original;</li>
<li><strong>Loss</strong> of the thread local variables will be a fact since there is no way for Arthas to record the thread local info.</li> <li><strong>Loss</strong> of the thread local variables will be a undeniable fact since there is no way for Arthas to record the thread local info (<em>If you find one, please share with us in <a class="reference external" href="https://github.com/alibaba/arthas/issues">issues tracker</a></em>).</li>
<li><strong>Potential</strong> modifications of objects can happen since only a reference will be recorded by Arthas while later process might modify objects without Arthass watch.</li> <li><strong>Potential</strong> modifications of objects can happen since only a reference will be recorded while later operations might modify objects without Arthass watch.</li>
</ol> </ol>
</div> </div>
</div> </div>

@ -31,7 +31,7 @@
<link rel="stylesheet" href="_static/overrides.css" type="text/css" /> <link rel="stylesheet" href="_static/overrides.css" type="text/css" />
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
<link rel="next" title="trace" href="trace.html" /> <link rel="next" title="Critical Fields in Expressions" href="advice-class.html" />
<link rel="prev" title="monitor" href="monitor.html" /> <link rel="prev" title="monitor" href="monitor.html" />
<script src="_static/center_page.js"></script> <script src="_static/center_page.js"></script>
@ -93,47 +93,35 @@
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li> <li class="toctree-l2 current"><a class="reference internal" href="commands.html#advanced">Advanced</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li> <li class="toctree-l3"><a class="reference internal" href="dashboard.html">dashboard</a></li>
<li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li> <li class="toctree-l3"><a class="reference internal" href="thread.html">thread</a></li>
<li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li> <li class="toctree-l3"><a class="reference internal" href="jvm.html">jvm</a></li>
<li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li> <li class="toctree-l3"><a class="reference internal" href="sysprop.html">sysprop</a></li>
<li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li> <li class="toctree-l3"><a class="reference internal" href="getstatic.html">getstatic</a></li>
<li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li> <li class="toctree-l3"><a class="reference internal" href="sc.html">sc</a></li>
<li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li> <li class="toctree-l3"><a class="reference internal" href="sm.html">sm</a></li>
<li class="toctree-l2"><a class="reference internal" href="classloader.html">classloader</a></li> <li class="toctree-l3"><a class="reference internal" href="dump.html">dump</a></li>
<li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li> <li class="toctree-l3"><a class="reference internal" href="jad.html">jad</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li> <li class="toctree-l3"><a class="reference internal" href="classloader.html">classloader</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">watch</a><ul> <li class="toctree-l3"><a class="reference internal" href="redefine.html">redefine</a></li>
<li class="toctree-l3"><a class="reference internal" href="#parameters-options">Parameters &amp; Options</a><ul> <li class="toctree-l3"><a class="reference internal" href="monitor.html">monitor</a></li>
<li class="toctree-l4"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/advice-class.md">Critical fields in expression</a></li> <li class="toctree-l3 current"><a class="current reference internal" href="#">watch</a><ul>
<li class="toctree-l4"><a class="reference external" href="https://github.com/alibaba/arthas/issues/71">Special usage</a></li> <li class="toctree-l4"><a class="reference internal" href="#parameters-options">Parameters &amp; Options</a></li>
<li class="toctree-l4"><a class="reference external" href="https://commons.apache.org/proper/commons-ognl/language-guide.html">OGNL official guide</a></li> <li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l3"><a class="reference internal" href="#usage">Usage</a><ul> <li class="toctree-l3"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l4"><a class="reference internal" href="#check-the-out-parametersand-return-value">Check the <code class="docutils literal notranslate"><span class="pre">out-parameters</span></code>and <code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">value</span></code></a></li> <li class="toctree-l3"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l4"><a class="reference internal" href="#check-in-parameters">Check <code class="docutils literal notranslate"><span class="pre">in-parameters</span></code></a></li> <li class="toctree-l3"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l4"><a class="reference internal" href="#check-before-and-after-at-the-same-time">Check <em>before</em> and <em>after</em> at the same time</a></li> <li class="toctree-l3"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l4"><a class="reference internal" href="#using-x-to-check-more-details">Using <code class="docutils literal notranslate"><span class="pre">-x</span></code> to check more details</a></li>
<li class="toctree-l4"><a class="reference internal" href="#using-condition-expressions-to-locate-specific-call">Using condition expressions to locate specific call</a></li>
<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-based-on-time-cost">Filter based on time cost</a></li>
<li class="toctree-l4"><a class="reference internal" href="#check-the-global-properties-of-the-target-object">Check the global properties of the target object</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li>
<li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li>
<li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li>
<li class="toctree-l2"><a class="reference internal" href="commands.html#arthas-basic-commands">Arthas Basic Commands</a></li>
</ul>
</li>
<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"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/release-notes.md">Release Notes</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
@ -182,7 +170,7 @@
<li><a href="index.html">Docs</a> &raquo;</li> <li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="commands.html">Commands List</a> &raquo;</li> <li><a href="commands.html">All Commands</a> &raquo;</li>
<li>watch</li> <li>watch</li>
@ -207,11 +195,11 @@
<div class="section" id="watch"> <div class="section" id="watch">
<span id="watch"></span><h1>watch<a class="headerlink" href="#watch" title="Permalink to this headline"></a></h1> <span id="watch"></span><h1>watch<a class="headerlink" href="#watch" title="Permalink to this headline"></a></h1>
<p>Monitor the methods in data aspect including <code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">value</span></code>, <code class="docutils literal notranslate"><span class="pre">exceptions</span></code> and <code class="docutils literal notranslate"><span class="pre">parameters</span></code>.</p> <p>Monitor methods in data aspect including <code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">values</span></code>, <code class="docutils literal notranslate"><span class="pre">exceptions</span></code> and <code class="docutils literal notranslate"><span class="pre">parameters</span></code>.</p>
<p>With the help of <a class="reference external" href="https://en.wikipedia.org/wiki/OGNL">OGNL</a>, you can easily check the details of the variables.</p> <p>With the help of <a class="reference external" href="https://en.wikipedia.org/wiki/OGNL">OGNL</a>, you can easily check the details of variables when methods being invoked.</p>
<div class="section" id="parameters-options"> <div class="section" id="parameters-options">
<span id="parameters-options"></span><h2>Parameters &amp; Options<a class="headerlink" href="#parameters-options" title="Permalink to this headline"></a></h2> <span id="parameters-options"></span><h2>Parameters &amp; Options<a class="headerlink" href="#parameters-options" title="Permalink to this headline"></a></h2>
<p>There are four different usage scenarios for <code class="docutils literal notranslate"><span class="pre">watch</span></code> command, which makes it the most complicated command in Arthas.</p> <p>There are four different scenarios for <code class="docutils literal notranslate"><span class="pre">watch</span></code> command, which makes it rather complicated.</p>
<table border="1" class="docutils"> <table border="1" class="docutils">
<thead> <thead>
<tr> <tr>
@ -229,32 +217,32 @@
<td align="left">pattern for the method name</td> <td align="left">pattern for the method name</td>
</tr> </tr>
<tr> <tr>
<td align="right"><em>express</em></td> <td align="right"><em>expression</em></td>
<td align="left">expression to monitor</td> <td align="left">expression to monitor</td>
</tr> </tr>
<tr> <tr>
<td align="right"><em>condition-express</em></td> <td align="right"><em>condition-expression</em></td>
<td align="left">condition expression</td> <td align="left">condition expression to filter</td>
</tr> </tr>
<tr> <tr>
<td align="right">[b]</td> <td align="right">[b]</td>
<td align="left">before invoking</td> <td align="left">before method being invoked</td>
</tr> </tr>
<tr> <tr>
<td align="right">[e]</td> <td align="right">[e]</td>
<td align="left">encountering exceptions</td> <td align="left">when method encountering exceptions</td>
</tr> </tr>
<tr> <tr>
<td align="right">[s]</td> <td align="right">[s]</td>
<td align="left">returned normally</td> <td align="left">when method exits normally</td>
</tr> </tr>
<tr> <tr>
<td align="right">[f]</td> <td align="right">[f]</td>
<td align="left">returned normally and abnormally</td> <td align="left">when method exits (either succeed or fail with exceptions)</td>
</tr> </tr>
<tr> <tr>
<td align="right">[E]</td> <td align="right">[E]</td>
<td align="left">turn on regx matching while the default is wildcards matching</td> <td align="left">turn on regex matching while the default is wildcard matching</td>
</tr> </tr>
<tr> <tr>
<td align="right">[x:]</td> <td align="right">[x:]</td>
@ -265,15 +253,15 @@
<ol class="simple"> <ol class="simple">
<li>any valid OGNL expression as <code class="docutils literal notranslate"><span class="pre">&quot;{params,returnObj}&quot;</span></code> supported</li> <li>any valid OGNL expression as <code class="docutils literal notranslate"><span class="pre">&quot;{params,returnObj}&quot;</span></code> supported</li>
<li>there are four <em>watching</em> points: <code class="docutils literal notranslate"><span class="pre">-b</span></code>, <code class="docutils literal notranslate"><span class="pre">-e</span></code>, <code class="docutils literal notranslate"><span class="pre">-s</span></code> and <code class="docutils literal notranslate"><span class="pre">-f</span></code> (the first three are off in default while <code class="docutils literal notranslate"><span class="pre">-f</span></code> on);</li> <li>there are four <em>watching</em> points: <code class="docutils literal notranslate"><span class="pre">-b</span></code>, <code class="docutils literal notranslate"><span class="pre">-e</span></code>, <code class="docutils literal notranslate"><span class="pre">-s</span></code> and <code class="docutils literal notranslate"><span class="pre">-f</span></code> (the first three are off in default while <code class="docutils literal notranslate"><span class="pre">-f</span></code> on);</li>
<li>at the <em>watching</em> point, Arthas will use the <code class="docutils literal notranslate"><span class="pre">expression</span></code> to calculate the values and print them out;</li> <li>at the <em>watching</em> point, Arthas will use the <em>expression</em> to evaluate the variables and print them out;</li>
<li><code class="docutils literal notranslate"><span class="pre">in-parameters</span></code> and <code class="docutils literal notranslate"><span class="pre">out-parameters</span></code> are different since they can be modified; <code class="docutils literal notranslate"><span class="pre">params</span></code> stands for <code class="docutils literal notranslate"><span class="pre">in-parameters</span></code> in <code class="docutils literal notranslate"><span class="pre">-b</span></code>while <code class="docutils literal notranslate"><span class="pre">out-parameters</span></code> in other <em>watching</em> points;</li> <li><code class="docutils literal notranslate"><span class="pre">in</span> <span class="pre">parameters</span></code> and <code class="docutils literal notranslate"><span class="pre">out</span> <span class="pre">parameters</span></code> are different since they can be modified within the invoked methods; <code class="docutils literal notranslate"><span class="pre">params</span></code> stands for <code class="docutils literal notranslate"><span class="pre">in</span> <span class="pre">parameters</span></code> in <code class="docutils literal notranslate"><span class="pre">-b</span></code>while <code class="docutils literal notranslate"><span class="pre">out</span> <span class="pre">parameters</span></code> in other <em>watching</em> points;</li>
<li>there is no <code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">value</span></code> and <code class="docutils literal notranslate"><span class="pre">exceptions</span></code> when using <code class="docutils literal notranslate"><span class="pre">-b</span></code>.</li> <li>there are no <code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">values</span></code> and <code class="docutils literal notranslate"><span class="pre">exceptions</span></code> when using <code class="docutils literal notranslate"><span class="pre">-b</span></code>.</li>
</ol> </ol>
<p>Advanced:</p> <p>Advanced:</p>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
<ul> <ul>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/tree/master/site/src/site/sphinx/en/advice-class.md">Critical fields in expression</a></li> <li class="toctree-l1"><a class="reference internal" href="advice-class.html">Critical fields in</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues/71">Special usage</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues/71">Special usages</a></li>
<li class="toctree-l1"><a class="reference external" href="https://commons.apache.org/proper/commons-ognl/language-guide.html">OGNL official guide</a></li> <li class="toctree-l1"><a class="reference external" href="https://commons.apache.org/proper/commons-ognl/language-guide.html">OGNL official guide</a></li>
</ul> </ul>
</div> </div>
@ -299,8 +287,8 @@
<span class="o">}</span> <span class="o">}</span>
</pre></div> </pre></div>
</div> </div>
<div class="section" id="check-the-out-parametersand-return-value"> <div class="section" id="check-the-out-parameters-and-return-value">
<span id="check-the-out-parametersand-return-value"></span><h3>Check the <code class="docutils literal notranslate"><span class="pre">out-parameters</span></code>and <code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">value</span></code><a class="headerlink" href="#check-the-out-parametersand-return-value" title="Permalink to this headline"></a></h3> <span id="check-the-out-parameters-and-return-value"></span><h3>Check the <code class="docutils literal notranslate"><span class="pre">out</span> <span class="pre">parameters</span></code> and <code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">value</span></code><a class="headerlink" href="#check-the-out-parameters-and-return-value" title="Permalink to this headline"></a></h3>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add <span class="s2">&quot;{params,returnObj}&quot;</span> -x <span class="m">2</span> <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add <span class="s2">&quot;{params,returnObj}&quot;</span> -x <span class="m">2</span>
Press Ctrl+C to abort. Press Ctrl+C to abort.
Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span> cost in <span class="m">44</span> ms. Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span> cost in <span class="m">44</span> ms.
@ -316,7 +304,7 @@ Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span>
</div> </div>
</div> </div>
<div class="section" id="check-in-parameters"> <div class="section" id="check-in-parameters">
<span id="check-in-parameters"></span><h3>Check <code class="docutils literal notranslate"><span class="pre">in-parameters</span></code><a class="headerlink" href="#check-in-parameters" title="Permalink to this headline"></a></h3> <span id="check-in-parameters"></span><h3>Check <code class="docutils literal notranslate"><span class="pre">in</span> <span class="pre">parameters</span></code><a class="headerlink" href="#check-in-parameters" title="Permalink to this headline"></a></h3>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add <span class="s2">&quot;{params,returnObj}&quot;</span> -x <span class="m">2</span> -b <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add <span class="s2">&quot;{params,returnObj}&quot;</span> -x <span class="m">2</span> -b
Press Ctrl+C to abort. Press Ctrl+C to abort.
Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span> cost in <span class="m">48</span> ms. Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span> cost in <span class="m">48</span> ms.
@ -330,7 +318,7 @@ Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span>
<span class="o">]</span> <span class="o">]</span>
</pre></div> </pre></div>
</div> </div>
<p>Compared to the previous <em>check</em>:</p> <p>Compared to the previous <em>check</em>, there are two differences:</p>
<ol class="simple"> <ol class="simple">
<li>size of <code class="docutils literal notranslate"><span class="pre">params[0]</span></code> is <code class="docutils literal notranslate"><span class="pre">2</span></code> instead of <code class="docutils literal notranslate"><span class="pre">4</span></code>;</li> <li>size of <code class="docutils literal notranslate"><span class="pre">params[0]</span></code> is <code class="docutils literal notranslate"><span class="pre">2</span></code> instead of <code class="docutils literal notranslate"><span class="pre">4</span></code>;</li>
<li><code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">value</span></code> is <code class="docutils literal notranslate"><span class="pre">null</span></code> since its <code class="docutils literal notranslate"><span class="pre">-b</span></code>.</li> <li><code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">value</span></code> is <code class="docutils literal notranslate"><span class="pre">null</span></code> since its <code class="docutils literal notranslate"><span class="pre">-b</span></code>.</li>
@ -365,8 +353,8 @@ Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span>
<li>the order of the output determined by the <em>watching</em> order itself (nothing to do with the order of the options <code class="docutils literal notranslate"><span class="pre">-b</span> <span class="pre">-s</span></code>).</li> <li>the order of the output determined by the <em>watching</em> order itself (nothing to do with the order of the options <code class="docutils literal notranslate"><span class="pre">-b</span> <span class="pre">-s</span></code>).</li>
</ol> </ol>
</div> </div>
<div class="section" id="using-x-to-check-more-details"> <div class="section" id="use-x-to-check-more-details">
<span id="using-x-to-check-more-details"></span><h3>Using <code class="docutils literal notranslate"><span class="pre">-x</span></code> to check more details<a class="headerlink" href="#using-x-to-check-more-details" title="Permalink to this headline"></a></h3> <span id="use-x-to-check-more-details"></span><h3>Use <code class="docutils literal notranslate"><span class="pre">-x</span></code> to check more details<a class="headerlink" href="#use-x-to-check-more-details" title="Permalink to this headline"></a></h3>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add <span class="s2">&quot;{params,returnObj}&quot;</span> -x <span class="m">3</span> <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add <span class="s2">&quot;{params,returnObj}&quot;</span> -x <span class="m">3</span>
Press Ctrl+C to abort. Press Ctrl+C to abort.
Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span> cost in <span class="m">59</span> ms. Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span> cost in <span class="m">59</span> ms.
@ -393,8 +381,8 @@ Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span>
</pre></div> </pre></div>
</div> </div>
</div> </div>
<div class="section" id="using-condition-expressions-to-locate-specific-call"> <div class="section" id="use-condition-expressions-to-locate-specific-call">
<span id="using-condition-expressions-to-locate-specific-call"></span><h3>Using condition expressions to locate specific call<a class="headerlink" href="#using-condition-expressions-to-locate-specific-call" title="Permalink to this headline"></a></h3> <span id="use-condition-expressions-to-locate-specific-call"></span><h3>Use condition expressions to locate specific call<a class="headerlink" href="#use-condition-expressions-to-locate-specific-call" title="Permalink to this headline"></a></h3>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ watch com.alibaba.sample.petstore.biz.impl.UserManagerImpl testAdd <span class="s2">&quot;{params, returnObj}&quot;</span> <span class="s2">&quot;params[0].equals(&#39;aaa&#39;)&quot;</span> -x <span class="m">2</span> <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ watch com.alibaba.sample.petstore.biz.impl.UserManagerImpl testAdd <span class="s2">&quot;{params, returnObj}&quot;</span> <span class="s2">&quot;params[0].equals(&#39;aaa&#39;)&quot;</span> -x <span class="m">2</span>
Press Ctrl+C to abort. Press Ctrl+C to abort.
Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span> cost in <span class="m">29</span> ms. Affect<span class="o">(</span>class-cnt:1 , method-cnt:1<span class="o">)</span> cost in <span class="m">29</span> ms.
@ -548,7 +536,7 @@ ts=2017-10-31 18:46:17;result=@$Proxy131[
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="trace.html" class="btn btn-neutral float-right" title="trace" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> <a href="advice-class.html" class="btn btn-neutral float-right" title="Critical Fields in Expressions" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="monitor.html" class="btn btn-neutral" title="monitor" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> <a href="monitor.html" class="btn btn-neutral" title="monitor" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>

Loading…
Cancel
Save