update doc

pull/18/head
hengyunabc 7 years ago
parent 661e84f9a9
commit 24efb9281b

@ -42,7 +42,7 @@ curl -L TODO /install.sh | sh
`./as.sh`
执行该脚本的用户需要和目标进程具有相同的权限。在公司内部通常需要使用admin用户执行。
执行该脚本的用户需要和目标进程具有相同的权限。比如以`admin`用户来执行:
`sudo su admin && ./as.sh``sudo -u admin -EH ./as.sh`
@ -57,31 +57,31 @@ curl -L TODO /install.sh | sh
#### 想快速了解系统、应用运行状况
---
* [dashboard](cmds/dashboard)——当前系统的实时数据面板
* [thread](cmds/thread)——查看当前 JVM 的线程堆栈信息
* [jvm](cmds/jvm)——查看当前 JVM 的信息
* [sysprop](cmds/sysprop)——查看和修改JVM的系统属性
* **New!** [getstatic](cmds/getstatic)——查看类的静态属性
* [dashboard](dashboard)——当前系统的实时数据面板
* [thread](thread)——查看当前 JVM 的线程堆栈信息
* [jvm](jvm)——查看当前 JVM 的信息
* [sysprop](sysprop)——查看和修改JVM的系统属性
* **New!** [getstatic](getstatic)——查看类的静态属性
#### 类、方法冲突、class文件、classloader继承问题等
---
* [sc](cmds/sc)——查看JVM已加载的类信息
* [sm](cmds/sm)——查看已加载类的方法信息
* [dump](cmds/dump)——dump 已加载类的 byte code 到特定目录
* [redefine](cmds/redefine)——加载外部的`.class`文件redefine到JVM里
* [jad](cmds/jad)——反编译指定已加载类的源码
* [classloader](cmds/classloader)——查看classloader的继承树urls类加载信息使用classloader去getResource
* [sc](sc)——查看JVM已加载的类信息
* [sm](sm)——查看已加载类的方法信息
* [dump](dump)——dump 已加载类的 byte code 到特定目录
* [redefine](redefine)——加载外部的`.class`文件redefine到JVM里
* [jad](jad)——反编译指定已加载类的源码
* [classloader](classloader)——查看classloader的继承树urls类加载信息使用classloader去getResource
#### 查看方法执行参数、异常、返回值、调用路径等
> 非常重要,请注意,这些命令,都通过字节码增强技术来实现的,会在指定类的方法中插入一些切面来实现数据统计和观测,因此在线上、预发使用时,请尽量明确需要观测的类、方法以及条件,诊断结束要执行 `shutdown` 或将增强过的类执行 `reset` 命令。
* [monitor](cmds/monitor)——方法执行监控
* [watch](cmds/watch)——方法执行数据观测
* [trace](cmds/trace)——方法内部调用路径,并输出方法路径上的每个节点上耗时
* [stack](cmds/stack)——输出当前方法被调用的调用路径
* [tt](cmds/tt)——方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测
* [monitor](monitor)——方法执行监控
* [watch](watch)——方法执行数据观测
* [trace](trace)——方法内部调用路径,并输出方法路径上的每个节点上耗时
* [stack](stack)——输出当前方法被调用的调用路径
* [tt](tt)——方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测
#### options
@ -92,11 +92,11 @@ curl -L TODO /install.sh | sh
* help——查看命令帮助信息
* cls——清空当前屏幕区域
* session——查看当前会话的信息
* [reset](cmds/reset)——重置增强类,将被 Arthas 增强过的类全部还原Arthas 服务端关闭时会重置所有增强过的类
* [reset](reset)——重置增强类,将被 Arthas 增强过的类全部还原Arthas 服务端关闭时会重置所有增强过的类
* version——输出当前目标 Java 进程所加载的 Arthas 版本号
* quit——退出当前 Arthas 客户端,其他 Arthas 客户端不受影响
* shutdown——关闭 Arthas 服务端,所有 Arthas 客户端全部退出
* [keymap](cmds/keymap)——Arthas快捷键列表及自定义快捷键
* [keymap](keymap)——Arthas快捷键列表及自定义快捷键
#### 管道
@ -108,7 +108,7 @@ Arthas支持使用管道对上述命令的结果进行进一步的处理如`s
#### 后台异步任务
当线上出现偶发的问题比如需要watch某个条件而这个条件一天可能才会出现一次时异步后台任务就派上用场了详情请参考[这里](async)
当线上出现偶发的问题比如需要watch某个条件而这个条件一天可能才会出现一次时异步后台任务就派上用场了详情请参考[这里](async.md)
* 使用 > 将结果重写向到日志文件,使用 & 指定命令是后台运行session断开不影响任务执行生命周期默认为1天
* jobs——列出所有job
@ -122,9 +122,9 @@ TODO
### 5. 其他特性说明
* [异步命令支持](async)
* [执行结果存日志](cmds/options)
* [批处理的支持](batch-support)
* [异步命令支持](async.md)
* [执行结果存日志](options.md)
* [批处理的支持](batch-support.md)
* [ognl表达式的用法说明](TODO/articles/92448)
### 6. 用户使用案例

@ -1,17 +1,17 @@
* 命令使用
* [系统指标](cmds/dashboard)
* [线程堆栈](cmds/thread)
* [JVM信息](cmds/jvm)
* [查看类信息](cmds/sc)
* [查看方法信息](cmds/sm)
* [dump字节码](cmds/dump)
* [反编译类](cmds/jad)
* [查看类加载信息](cmds/classloader)
* [方法执行监控](cmds/monitor)
* [方法AOP观测](cmds/watch)
* [方法内部路径耗时](cmds/trace)
* [查看方法调用栈](cmds/stack)
* [方法执行记录与回放](cmds/tt)
* [系统指标](dashboard)
* [线程堆栈](thread)
* [JVM信息](jvm)
* [查看类信息](sc)
* [查看方法信息](sm)
* [dump字节码](dump)
* [反编译类](jad)
* [查看类加载信息](classloader)
* [方法执行监控](monitor)
* [方法AOP观测](watch)
* [方法内部路径耗时](trace)
* [查看方法调用栈](stack)
* [方法执行记录与回放](tt)
* [启动脚本说明](start-arthas)
* [Release Notes](release-notes)
* 常见问题

@ -1,3 +0,0 @@
* [Introduction](introduction)
* [Features](features)
* [FAQ](faq-en)

@ -0,0 +1,75 @@
进阶使用
===
## 基础命令
* help——查看命令帮助信息
* cls——清空当前屏幕区域
* session——查看当前会话的信息
* [reset](reset.md)——重置增强类,将被 Arthas 增强过的类全部还原Arthas 服务端关闭时会重置所有增强过的类
* version——输出当前目标 Java 进程所加载的 Arthas 版本号
* quit——退出当前 Arthas 客户端,其他 Arthas 客户端不受影响
* shutdown——关闭 Arthas 服务端,所有 Arthas 客户端全部退出
* [keymap](keymap.md)——Arthas快捷键列表及自定义快捷键
## jvm相关
* [dashboard](dashboard.md)——当前系统的实时数据面板
* [thread](thread.md)——查看当前 JVM 的线程堆栈信息
* [jvm](jvm.md)——查看当前 JVM 的信息
* [sysprop](sysprop.md)——查看和修改JVM的系统属性
* **New!** [getstatic](getstatic.md)——查看类的静态属性
## class/classloader相关
* [sc](sc.md)——查看JVM已加载的类信息
* [sm](sm.md)——查看已加载类的方法信息
* [dump](dump.md)——dump 已加载类的 byte code 到特定目录
* [redefine](redefine.md)——加载外部的`.class`文件redefine到JVM里
* [jad](jad.md)——反编译指定已加载类的源码
* [classloader](classloader.md)——查看classloader的继承树urls类加载信息使用classloader去getResource
## monitor/watch/trace相关
> 请注意,这些命令,都通过字节码增强技术来实现的,会在指定类的方法中插入一些切面来实现数据统计和观测,因此在线上、预发使用时,请尽量明确需要观测的类、方法以及条件,诊断结束要执行 `shutdown` 或将增强过的类执行 `reset` 命令。
* [monitor](monitor.md)——方法执行监控
* [watch](watch.md)——方法执行数据观测
* [trace](trace.md)——方法内部调用路径,并输出方法路径上的每个节点上耗时
* [stack](stack.md)——输出当前方法被调用的调用路径
* [tt](tt.md)——方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测
## options
* [options](options.md)——查看或设置Arthas全局开关
## 管道
Arthas支持使用管道对上述命令的结果进行进一步的处理如`sm org.apache.log4j.Logger | grep <init>`
* grep——搜索满足条件的结果
* plaintext——将命令的结果去除颜色
* wc——按行统计输出结果
## 后台异步任务
当线上出现偶发的问题比如需要watch某个条件而这个条件一天可能才会出现一次时异步后台任务就派上用场了详情请参考[这里](async.md)
* 使用 > 将结果重写向到日志文件,使用 & 指定命令是后台运行session断开不影响任务执行生命周期默认为1天
* jobs——列出所有job
* kill——强制终止任务
* fg——将暂停的任务拉到前台执行
* bg——将暂停的任务放到后台执行
## 其他特性
* [异步命令支持](async.md)
* [执行结果存日志](save-log.md)
* [批处理的支持](batch-support.md)
* [ognl表达式的用法说明](TODO/articles/92448)

@ -27,7 +27,7 @@ watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add "params +
为了避免这个问题Arthas 3.0中使用了ognl这个更加轻量的表达式求值库来代替groovy彻底解决了groovy引起的FGC风险。但由于这个替换导致原来使用groovy脚本编写的自定义脚本失效。这个问题留待后续解决。
在3.0中watch命令的表达式部分的书写有了一些改变详见[这里](https://github.com/alibaba/arthas/wiki/cmds/watch)
在3.0中watch命令的表达式部分的书写有了一些改变详见[这里](https://github.com/alibaba/arthas/wiki/watch)
#### 提升rt统计精度

@ -63,7 +63,7 @@ watch com.alibaba.sample.petstore.web.store.module.screen.ItemList add "params +
为了避免这个问题Arthas 3.0中使用了ognl这个更加轻量的表达式求值库来代替groovy彻底解决了groovy引起的FGC风险。但由于这个替换导致原来使用groovy脚本编写的自定义脚本失效。这个问题留待后续解决。
在3.0中watch命令的表达式部分的书写有了一些改变详见[这里](https://github.com/alibaba/arthas/wiki/cmds/watch)
在3.0中watch命令的表达式部分的书写有了一些改变详见[这里](https://github.com/alibaba/arthas/wiki/watch)
### 提升rt统计精度
Arthas 2.0中统计rt都是以`ms`为单位对于某些比较小的方法调用耗时在毫秒以下的都会被认为是0ms造成trace总时间和各方法的时间相加不一致等问题虽然这里面确实会有误差主要Arthas自身的开销。Arthas 3.0中所有rt的单位统一改为使用`ns`来统计精准捕获你的方法耗时让0ms这样无意义的统计数据不再出现

@ -2,7 +2,6 @@ Arthas异步调用
===
arthas中的异步调用使用了仿linux系统任务相关的命令。[linux任务相关介绍](https://ehlxr.me/2017/01/18/Linux-%E4%B8%AD-fg%E3%80%81bg%E3%80%81jobs%E3%80%81-%E6%8C%87%E4%BB%A4/)。
# 使用方式
## 1. 使用&在后台执行任务
比如希望执行后台执行trace命令那么调用下面命令

@ -13,7 +13,7 @@
> * 目前需要每个命令占一行
> * dashboard务必开启批处理模式(`-b`),指定执行次数(`-n`),否则会导致批处理脚本无法终止
> * watch/tt/trace/monitor/stack等命令务必指定执行次数(`-n`),否则会导致批处理脚本无法终止
> * 可以使用异步后台任务,如 `watch c.t.X test returnObj > &`,让命令一直在后台运行,通过日志获取结果,[获取更多异步任务的信息](async)
> * 可以使用异步后台任务,如 `watch c.t.X test returnObj > &`,让命令一直在后台运行,通过日志获取结果,[获取更多异步任务的信息](async.md)
```
➜ arthas git:(develop) cat /var/tmp/test.as

@ -1,22 +1,37 @@
Arthas 用户命令文档
命令列表
=============
* [仪表板/dashboard](cmds/dashboard.md)
* [线程堆栈/thread](cmds/thread.md)
* [JVM信息/jvm](cmds/jvm.md)
* [查看类信息/sc](cmds/sc.md)
* [查看方法信息/sm](cmds/sm.md)
* [dump字节码/dump](cmds/dump.md)
* [反编译类/jad](cmds/jad.md)
* [查看类加载信息/classloader](cmds/classloader.md)
* [重新加载类/redefine](cmds/redefine)
* [方法执行监控/monitor](cmds/monitor.md)
* [方法AOP观测/watch](cmds/watch.md)
* [方法内部路径耗时/trace](cmds/trace.md)
* [查看方法调用栈/stack](cmds/stack.md)
* [方法执行记录与回放/tt](cmds/tt.md)
* [JVM属性/sysprop](cmds/sysprop)
* [查看类的静态属性/getstatic](cmds/getstatic)
* [全局开关/options](options)
* [dashboard](dashboard.md)
* [thread](thread.md)
* [jvm](jvm.md)
* [sysprop](sysprop.md)
* [getstatic](getstatic.md)
* [sc](sc.md)
* [sm](sm.md)
* [dump](dump.md)
* [jad](jad.md)
* [classloader](classloader.md)
* [redefine](redefine.md)
* [monitor](monitor.md)
* [watch](watch.md)
* [trace](trace.md)
* [stack](stack.md)
* [tt](tt.md)
* [options](options.md)
### Arthas 基础命令
* help——查看命令帮助信息
* cls——清空当前屏幕区域
* session——查看当前会话的信息
* [reset](reset.md)——重置增强类,将被 Arthas 增强过的类全部还原Arthas 服务端关闭时会重置所有增强过的类
* version——输出当前目标 Java 进程所加载的 Arthas 版本号
* quit——退出当前 Arthas 客户端,其他 Arthas 客户端不受影响
* shutdown——关闭 Arthas 服务端,所有 Arthas 客户端全部退出
* [keymap](keymap.md)——Arthas快捷键列表及自定义快捷键

@ -296,6 +296,7 @@ def setup(app):
'url_resolver': lambda url: github_doc_root + url,
# 'auto_toc_tree_section': 'Contents',
'enable_eval_rst': True,
'enable_auto_doc_ref': True,
# 'enable_auto_doc_ref': True,
'enable_auto_toc_tree': True,
}, True)
app.add_transform(AutoStructify)

@ -58,7 +58,4 @@ uptime 16020s busy
### 截图展示
![alt text](https://github.com/alibaba/arthas/wiki/files/dashboard.png "dashboard")
<script src="https://asciinema.org/a/14.js" id="asciicast-14" async></script>
![alt text](files/dashboard.png "dashboard")

@ -71,7 +71,7 @@ interface ScriptListener {
### 参数 `Advice` 说明
`Advice` 参数最主要是封装了通知节点的所有信息。参考[表达式核心变量](https://github.com/alibaba/arthas/wiki/cmds/advice-class)中关于该节点的描述。
`Advice` 参数最主要是封装了通知节点的所有信息。参考[表达式核心变量](advice-class.md)中关于该节点的描述。
### 参数 `Output` 说明

@ -19,8 +19,14 @@ Contents
--------
* [安装](install-detail.md)
* [快速入门](quick-start.md)
* [进阶使用](advanced-use.md)
* [命令列表](commands.md)
* [用户案例](https://github.com/alibaba/arthas/labels/user-case)
* [Release Notes](release-notes.md)
* [Questions and answers](https://github.com/alibaba/arthas/labels/question-answered)
* [Fork me at GitHub](https://github.com/alibaba/arthas)
* [参与贡献](https://github.com/alibaba/arthas/CONTRIBUTING.md)

@ -1,35 +1,38 @@
Arthas Install
=============
This document is for developers of recommonmark, it contans the API functions
## 安装
## Linux/Unix/Mac
* Arthas 支持在 Linux/Unix/Mac 等平台上一键安装,请复制以下内容,并粘贴到命令行中,敲 `回车` 执行即可:
Arthas 支持在 Linux/Unix/Mac 等平台上一键安装,请复制以下内容,并粘贴到命令行中,敲 `回车` 执行即可:
> curl -L TODO/install.sh | sh
```bash
curl -L https://alibaba.github.io/arthas/install.sh | sh
```
上述命令将会下载的启动脚本文件 as.sh 到当前目录,你可以放在任何地方或将其加入到 $PATH 中;
上述命令将会下载的启动脚本文件 `as.sh` 到当前目录,你可以放在任何地方或将其加入到 $PATH 中
* 对于 Windows 平台,你也可以下载最新的 zip 包,解压后运行 bin 目录下的 as.bat。
## Windows
下载地址TODO (点击下载推荐的 Arthas 版本)
下载最新的 zip 包,解压后运行 bin 目录下的 `as.bat`
Windows用户如果在cmd里不能正常显示颜色可以使用这个软件https://sourceforge.net/projects/conemu
下载地址:[arthas-packaging-3.0.0-RC-bin.zip](https://search.maven.org/remotecontent?filepath=com/taobao/arthas/arthas-packaging/3.0.0-RC/arthas-packaging-3.0.0-RC-bin.zip)
Windows用户如果在cmd里不能正常显示颜色可以使用[conemu](https://sourceforge.net/projects/conemu)。
## 独立的帮助文档
下载地址:[arthas-packaging-3.0.0-RC-doc.zip](https://search.maven.org/remotecontent?filepath=com/taobao/arthas/arthas-packaging/3.0.0-RC/arthas-packaging-3.0.0-RC-doc.zip)
## 卸载
* 在 Linux/Unix/Mac 平台
删除下面文件就可以了。
> rm -rf ~/.arthas/ ~/.arthas_history
删除下面文件:
```bash
rm -rf ~/.arthas/ ~/.arthas_history
```
* Windows平台直接删除zip包和解压的文件
## 手动安装
* [手动安装步骤](manual-install.md)

@ -0,0 +1,142 @@
快速入门
===
## 1. 启动Demo
```java
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
public class Demo {
static class Counter {
private static AtomicInteger count = new AtomicInteger(0);
public static void increment() {
count.incrementAndGet();
}
public static int value() {
return count.get();
}
}
public static void main(String[] args) throws InterruptedException {
while (true) {
Counter.increment();
System.out.println("counter: " + Counter.value());
TimeUnit.SECONDS.sleep(1);
}
}
}
```
把上面的内容保存到`Demo.java`里,然后在命令行下编绎启动:
```bash
javac Demo.java
java Demo
```
也可以把代码保存到IDE里然后启动。
## 2. 启动arthas
### Linux/Unix/Mac
在命令行下面执行:
```bash
./as.sh
```
> 执行该脚本的用户需要和目标进程具有相同的权限。比如以`admin`用户来执行:
> `sudo su admin && ./as.sh``sudo -u admin -EH ./as.sh`
> 详细的启动脚本说明,请参考[这里](start-arthas.md)。
> 如果attatch不上目标进程可以查看`~/logs/arthas/` 目录下的日志。
选择应用java进程
```
$ ./as.sh
Arthas script version: 3.0.2
Found existing java process, please choose one and hit RETURN.
* [1]: 95428
[2]: 22647 org.jetbrains.jps.cmdline.Launcher
[3]: 21736
[4]: 13560 Demo
```
Demo进程是第4个则输入4再输入回车/enter。Arthas会attach到目标进程上并输出日志
```
Connecting to arthas server... current timestamp is 1536656867
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
,---. ,------. ,--------.,--. ,--. ,---. ,---.
/ O \ | .--. ''--. .--'| '--' | / O \ ' .-'
| .-. || '--'.' | | | .--. || .-. |`. `-.
| | | || |\ \ | | | | | || | | |.-' |
`--' `--'`--' '--' `--' `--' `--'`--' `--'`-----'
doc: https://alibaba.github.io/arthas
version: 3.0.1-RC-SNAPSHOT
pid: 13560
timestamp: 1536656867894
```
### Windows
打开Dos命令行窗口在解压的arthas目录下执行`as.bat`。
## 3. 查看dashboard
输入[dashboard](dashboard.md)按enter/回车,会展示当前进程的信息,按`ctrl+c`可以中断执行。
```
$ dashboard
ID NAME GROUP PRIORI STATE %CPU TIME INTERRU DAEMON
17 pool-2-thread-1 system 5 WAITIN 67 0:0 false false
27 Timer-for-arthas-dashb system 10 RUNNAB 32 0:0 false true
11 AsyncAppender-Worker-a system 9 WAITIN 0 0:0 false true
9 Attach Listener system 9 RUNNAB 0 0:0 false true
3 Finalizer system 8 WAITIN 0 0:0 false true
2 Reference Handler system 10 WAITIN 0 0:0 false true
4 Signal Dispatcher system 9 RUNNAB 0 0:0 false true
26 as-command-execute-dae system 10 TIMED_ 0 0:0 false true
13 job-timeout system 9 TIMED_ 0 0:0 false true
1 main main 5 TIMED_ 0 0:0 false false
14 nioEventLoopGroup-2-1 system 10 RUNNAB 0 0:0 false false
18 nioEventLoopGroup-2-2 system 10 RUNNAB 0 0:0 false false
23 nioEventLoopGroup-2-3 system 10 RUNNAB 0 0:0 false false
15 nioEventLoopGroup-3-1 system 10 RUNNAB 0 0:0 false false
Memory used total max usage GC
heap 32M 155M 1820M 1.77% gc.ps_scavenge.count 4
ps_eden_space 14M 65M 672M 2.21% gc.ps_scavenge.time(m 166
ps_survivor_space 4M 5M 5M s)
ps_old_gen 12M 85M 1365M 0.91% gc.ps_marksweep.count 0
nonheap 20M 23M -1 gc.ps_marksweep.time( 0
code_cache 3M 5M 240M 1.32% ms)
Runtime
os.name Mac OS X
os.version 10.13.4
java.version 1.8.0_162
java.home /Library/Java/JavaVir
tualMachines/jdk1.8.0
_162.jdk/Contents/Hom
e/jre
```
## 4. watch
通过[watch](watch.md)命令来查看`Counter.value()`函数的返回值:
```
$ watch Demo$Counter value returnObj
Press Ctrl+C to abort.
Affect(class-cnt:1 , method-cnt:1) cost in 29 ms.
ts=2018-09-10 17:53:11;result=@Integer[621]
ts=2018-09-10 17:53:12;result=@Integer[622]
ts=2018-09-10 17:53:13;result=@Integer[623]
ts=2018-09-10 17:53:14;result=@Integer[624]
ts=2018-09-10 17:53:15;result=@Integer[625]
```
更多的功能可以查看[进阶使用](advanced-use.md)。

@ -3,7 +3,7 @@ Release Notes
===
2017-11-03
v2017-11-03
----
* 增加getstatic方法获取静态变量
@ -19,31 +19,31 @@ Release Notes
* trace命令增加过滤jdk方法调用的功能
2017-09-22
v2017-09-22
----
* 优化agent server启动时的异常信息
* 修复异步命令的一些bug
2017-09-11
v2017-09-11
----
* 支持[异步后后命令](async)
* 支持[异步后后命令](async.md)
* jad命令优化支持JDK8及内部类
* 修复中文乱码问题
2017-05-11
v2017-05-11
----
* tt命令默认只展开1层防止对象过大造成卡顿
* 修复中文无法展示的问题
2017-05-12
v2017-05-12
----
* Arthas 3.0 release
2016-12-09
v2016-12-09
----
* as.sh支持-h输出帮助
@ -67,7 +67,7 @@ Release Notes
* [#180] 修复第一次Attach成功之后删除之前Arthas的安装包重新编译打包再次attach失败的问题
2016-06-07
v2016-06-07
----
* 修复以资源方式加载spy类时出现NPE的问题
@ -75,7 +75,7 @@ Release Notes
* 优化 Thread 输出,按线程名排序
* 获取topN忙的线程时支持指定刷新间隔
2016-04-08
v2016-04-08
----
* New feature
@ -100,7 +100,7 @@ Release Notes
* 修正增强BootstrapClassLoader加载的类找不到Spy的问题
* 修复某些配色方案下,结果显示不友好的问题
2016-03-07
v2016-03-07
----
* 支持一键查看当前最忙的前N个线程及其堆栈
@ -108,13 +108,13 @@ Release Notes
* 一些体验优化
2016-01-18
v2016-01-18
----
* 优化 jad实时 dump 内存 byte array并使用 jd-core-java 反编译,支持`行号显示`
* 修复 tt 命令在监控与线程上下文相关的方法调用时,显示/重做等场景下的 bug
2016-01-08
v2016-01-08
----
* 修复一些 bug
@ -124,7 +124,7 @@ Release Notes
* 数据统计问题修复
* sc 查看静态变量内部层次结构
2015-12-29
v2015-12-29
---
* Arthas 2.0 测试版本发布!

@ -20,7 +20,7 @@ stack
观察的维度也比较多,主要体现在参数 `advice` 的数据结构上。`Advice` 参数最主要是封装了通知节点的所有信息。
请参考[表达式核心变量](https://github.com/alibaba/arthas/wiki/cmds/advice-class)中关于该节点的描述。
请参考[表达式核心变量](advice-class.md)中关于该节点的描述。
* 特殊用法请参考TODO middleware-container/arthas/issues/263
* OGNL表达式官网https://commons.apache.org/proper/commons-ognl/language-guide.html

@ -69,5 +69,4 @@ Arthas 支持通过 telnet 来访问服务端,如果当你手头的机器没
### Windows 环境支持
* 目前 Arthas 提供了 `as.bat` 脚本,用于 Windows 环境下的诊断场景;此脚本暂时只接受一个参数 pid即只能诊断本机上的 Java 进程;
* 要使用 Windows 下的诊断脚本,需要手动下载整个 Arthas Zip 包解压开后即可使用下载地址TODO (点击下载推荐的 Arthas 版本)
* 另外,`as.bat` 脚本在体验方面还有一些问题,如果需要更好的体验,可以在本地使用 `as.bat pid` 启动 Arthas Server 后,然后在另外的 Linux/Mac 上使用 as.bat pid@ip:port 来远程诊断;

@ -1,5 +1,5 @@
sysprop命令
===
sysprop
=======================
> 查看当前JVM的系统属性(`System Property`)
@ -18,7 +18,7 @@ sysprop命令
sysprop production.mode true
WIKI:
https://github.com/alibaba/arthas/wiki/cmds/sysprop
https://github.com/alibaba/arthas/wiki/sysprop
OPTIONS:
-h, --help this help

@ -21,7 +21,7 @@ trace
观察的维度也比较多,主要体现在参数 `advice` 的数据结构上。`Advice` 参数最主要是封装了通知节点的所有信息。
请参考[表达式核心变量](https://github.com/alibaba/arthas/wiki/cmds/advice-class)中关于该节点的描述。
请参考[表达式核心变量](advice-class.md)中关于该节点的描述。
* 特殊用法请参考TODO middleware-container/arthas/issues/263
* OGNL表达式官网https://commons.apache.org/proper/commons-ognl/language-guide.html

@ -16,19 +16,19 @@ tt
对于一个最基本的使用来说,就是记录下当前方法的每次调用环境现场。
```java
$ tt -t -n 3 *Test print
Press Ctrl+D or Ctrl+X to abort.
Affect(class-cnt:1 , method-cnt:1) cost in 115 ms.
+----------+----------------------+------------+----------+----------+-----------------+--------------------------------+--------------------------------+
| INDEX | TIMESTAMP | COST(ms) | IS-RET | IS-EXP | OBJECT | CLASS | METHOD |
+----------+----------------------+------------+----------+----------+-----------------+--------------------------------+--------------------------------+
| 1007 | 2015-07-26 12:23:21 | 138 | true | false | 0x42cc13a0 | GaOgnlUtilsTest | print |
+----------+----------------------+------------+----------+----------+-----------------+--------------------------------+--------------------------------+
| 1008 | 2015-07-26 12:23:22 | 143 | true | false | 0x42cc13a0 | GaOgnlUtilsTest | print |
+----------+----------------------+------------+----------+----------+-----------------+--------------------------------+--------------------------------+
| 1009 | 2015-07-26 12:23:23 | 130 | true | false | 0x42cc13a0 | GaOgnlUtilsTest | print |
+----------+----------------------+------------+----------+----------+-----------------+--------------------------------+--------------------------------+
$
$ tt -t -n 3 *Test print
Press Ctrl+D or Ctrl+X to abort.
Affect(class-cnt:1 , method-cnt:1) cost in 115 ms.
+----------+----------------------+------------+----------+----------+-----------------+--------------------------------+--------------------------------+
| INDEX | TIMESTAMP | COST(ms) | IS-RET | IS-EXP | OBJECT | CLASS | METHOD |
+----------+----------------------+------------+----------+----------+-----------------+--------------------------------+--------------------------------+
| 1007 | 2015-07-26 12:23:21 | 138 | true | false | 0x42cc13a0 | GaOgnlUtilsTest | print |
+----------+----------------------+------------+----------+----------+-----------------+--------------------------------+--------------------------------+
| 1008 | 2015-07-26 12:23:22 | 143 | true | false | 0x42cc13a0 | GaOgnlUtilsTest | print |
+----------+----------------------+------------+----------+----------+-----------------+--------------------------------+--------------------------------+
| 1009 | 2015-07-26 12:23:23 | 130 | true | false | 0x42cc13a0 | GaOgnlUtilsTest | print |
+----------+----------------------+------------+----------+----------+-----------------+--------------------------------+--------------------------------+
$
```
- 命令参数解析
@ -78,7 +78,7 @@ $
- 构成条件表达式的 `Advice` 对象
前边看到了很多条件表达式中,都适用了 `params[0]`,有关这个变量的介绍,请参考[表达式核心变量](https://github.com/alibaba/arthas/wiki/cmds/advice-class)
前边看到了很多条件表达式中,都适用了 `params[0]`,有关这个变量的介绍,请参考[表达式核心变量](advice-class.md)
### 检索调用记录

@ -27,7 +27,7 @@ watch 的参数比较多,主要是因为它能在 4 个不同的场景观察
观察的维度也比较多,主要体现在参数 `advice` 的数据结构上。`Advice` 参数最主要是封装了通知节点的所有信息。
请参考[表达式核心变量](https://github.com/alibaba/arthas/wiki/cmds/advice-class)中关于该节点的描述。
请参考[表达式核心变量](advice-class.md)中关于该节点的描述。
* 特殊用法请参考TODO middleware-container/arthas/issues/263
* OGNL表达式官网https://commons.apache.org/proper/commons-ognl/language-guide.html
Loading…
Cancel
Save