|
1 |
| -[中文使用指南](https://github.com/zhongl/HouseMD/wiki/UserGuideCN) |
| 1 | +# Sorry guys, HouseMD may not be updated any more except merging PR. |
2 | 2 |
|
3 |
| -HouseMD is a interactive command-line tool for dianosing Java process in runtime. |
4 |
| -It's inspiration came from [BTrace](http://kenai.com/projects/btrace), but more easier to use and more safer. |
| 3 | +# I highly recommend [Grey anatomy](https://github.com/oldmanpushcart/greys-anatomy) If you are looking for a tool like HouseMD. |
5 | 4 |
|
6 |
| -# Features |
7 |
| - |
8 |
| -- Display loaded classes information |
9 |
| - - name |
10 |
| - - source file(.class or .jar) |
11 |
| - - classloaders |
12 |
| -- Display invocation trace summary |
13 |
| - - method full name and sign |
14 |
| - - class loader of method declaring class |
15 |
| - - total invoked times |
16 |
| - - avg elapse millis |
17 |
| - - self instance |
18 |
| -- Output invocation detail |
19 |
| - - timestamp |
20 |
| - - elapse millis |
21 |
| - - call thread |
22 |
| - - this object |
23 |
| - - class name |
24 |
| - - method name |
25 |
| - - arguments |
26 |
| - - result or exception |
27 |
| -- Output invocation stack trace |
28 |
| -- Display object field value |
29 |
| -- Display enviroment variable |
30 |
| -- Auto-completion by typing `Tab` |
31 |
| -- navigate command history by up and down, and support `Ctrl + R` for searching |
32 |
| -- Awesome features you can provide by forking me |
33 |
| - |
34 |
| -[Test cases](https://github.com/zhongl/HouseMD/blob/master/src/test/scala/com/github/zhongl/housemd) would show more specification details. |
35 |
| - |
36 |
| -# Getting started |
37 |
| - |
38 |
| -## Pre-requirement |
39 |
| - |
40 |
| -- JDK 6 |
41 |
| -- [sbt](https://github.com/harrah/xsbt) |
42 |
| - |
43 |
| -## Install from [jenv](https://github.com/linux-china/jenv) |
44 |
| - |
45 |
| -- install [jenv](https://github.com/linux-china/jenv) |
46 |
| -- execute command line: `$ jenv install housemd` |
47 |
| - |
48 |
| -> Caution: Windows are not supported yet. |
49 |
| -
|
50 |
| - |
51 |
| -# How to use |
52 |
| - |
53 |
| - |
54 |
| - > housemd -h |
55 |
| - |
56 |
| -A help infomation shows up like: |
57 |
| - |
58 |
| - Usage: housemd [OPTIONS] pid |
59 |
| - a runtime diagnosis tool of JVM. |
60 |
| - Options: |
61 |
| - -h, --help |
62 |
| - show help infomation of this command. |
63 |
| - -p, --port=[INT] |
64 |
| - set console local socket server port number. |
65 |
| - default: 54321 |
66 |
| - Parameters: |
67 |
| - pid |
68 |
| - id of process to be diagnosing. |
69 |
| - |
70 |
| - |
71 |
| -Suppost your target pid is `1234` (you can use `jps` or `ps` get it), and then input: |
72 |
| - |
73 |
| - > ./housemd 1234 |
74 |
| - |
75 |
| -After seen prompt `housemd>`, input `help` then you get help infomation like this: |
76 |
| - |
77 |
| - housemd> help |
78 |
| - |
79 |
| - quit terminate the process. |
80 |
| - help display this infomation. |
81 |
| - trace display or output infomation of method invocaton. |
82 |
| - loaded display loaded classes information. |
83 |
| - env display system env. |
84 |
| - inspect display fields of a class. |
85 |
| - |
86 |
| -You can also input `help loaded` and get help infomation of `loaded` as blow: |
87 |
| - |
88 |
| - housemd> help loaded |
89 |
| - Usage: loaded [OPTIONS] name |
90 |
| - display loaded classes information. |
91 |
| - Options: |
92 |
| - -h, --classloader-hierarchies |
93 |
| - display classloader hierarchies of loaded class. |
94 |
| - Parameters: |
95 |
| - name |
96 |
| - class name without package name. |
97 |
| - |
98 |
| -# More about commands |
99 |
| - |
100 |
| -[Click here](https://github.com/zhongl/housemd/wiki/usecases) to see the use cases. |
101 |
| - |
102 |
| -# Build from code |
103 |
| - |
104 |
| - $ git clone https://github.com/zhongl/HouseMD.git housemd |
105 |
| - $ cd housemd |
106 |
| - $ sbt proguard |
107 |
| - |
108 |
| -A runnable jar named `housemd_x.x.x-x.x.x.min.jar` should be generated blow `target/scala-x.x.x/` |
109 |
| - |
110 |
| - |
111 |
| -## Run it |
112 |
| - |
113 |
| - $ java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar housemd_x.x.x-x.x.x.min.jar [OPTIONS] <pid> |
114 |
| - |
115 |
| -> Caution: In Mac OSX, the `-Xbootclasspath` is no needed. |
116 |
| -> You can created launch script as a shortcut. |
117 |
| -
|
118 |
| -Having fun! |
| 5 | +[README moved here.](https://github.com/CSUG/HouseMD/wiki/readme) |
0 commit comments