This commit is contained in:
hengyunabc
2019-02-14 11:45:31 +08:00
parent fb19520783
commit dedbe2c3c5
5 changed files with 9 additions and 9 deletions
+1 -1
View File
@@ -78,7 +78,7 @@ Tip: you can use `--versions` to list all available versions.
## 开发者相关
* Arthas运行支持JDK6+
* 编Arthas要求JDK7+,因为使用到了jdk7里的`java.lang.management.BufferPoolMXBean`。
* 编Arthas要求JDK7+,因为使用到了jdk7里的`java.lang.management.BufferPoolMXBean`。
### 安装到本地
+3 -3
View File
@@ -18,7 +18,7 @@ jad
### 使用参考
#### 编`java.lang.String`
#### 编`java.lang.String`
```java
$ jad java.lang.String
@@ -52,7 +52,7 @@ CharSequence {
...
```
#### 反编指定的函数
#### 反编指定的函数
```java
$ jad demo.MathGame main
@@ -75,7 +75,7 @@ public static void main(String[] args) throws InterruptedException {
Affect(row-cnt:1) cost in 228 ms.
```
#### 反编时指定ClassLoader
#### 反编时指定ClassLoader
> 当有多个 `ClassLoader` 都加载了这个类时,`jad` 命令会输出对应 `ClassLoader` 实例的 `hashcode`,然后你只需要重新执行 `jad` 命令,并使用参数 `-c <hashcode>` 就可以反编译指定 ClassLoader 加载的那个类了;
+2 -2
View File
@@ -1,7 +1,7 @@
mc
===
> Memory Compiler/内存编器,编`.java`文件生成`.class`。
> Memory Compiler/内存编器,编`.java`文件生成`.class`。
```bash
mc /tmp/Test.java
@@ -19,4 +19,4 @@ mc -c 327a647b /tmp/Test.java
mc -d /tmp/output /tmp/ClassA.java /tmp/ClassB.java
```
生成`.class`文件之后,可以结合[`redefine`](redefine.md)命令实现热更新代码。
生成`.class`文件之后,可以结合[`redefine`](redefine.md)命令实现热更新代码。
+1 -1
View File
@@ -104,7 +104,7 @@ $ thread 1 | grep 'main('
at demo.MathGame.main(MathGame.java:17)
```
## 5. 通过jad来反编Main Class
## 5. 通过jad来反编Main Class
```java
$ jad demo.MathGame
+2 -2
View File
@@ -33,8 +33,8 @@ mc /tmp/UserController.java -d /tmp
redefine /tmp/com/example/demo/arthas/user/UserController.class
```
* jad命令反编,然后可以用其它编器,比如vim来修改源码
* mc命令来内存编修改过的代码
* jad命令反编,然后可以用其它编器,比如vim来修改源码
* mc命令来内存编修改过的代码
* 用redefine命令加载新的字节码
### redefine的限制