comparison agent/doc/index.html @ 0:a61af66fc99e jdk7-b24

Initial load
author duke
date Sat, 01 Dec 2007 00:00:00 +0000
parents
children bd7a7ce2e264
comparison
equal deleted inserted replaced
-1:000000000000 0:a61af66fc99e
1 <html>
2 <head>
3 <title>
4 Using HotSpot Serviceability Agent (SA)
5 </title>
6 </head>
7 <body>
8 <h1>Using HotSpot Serviceability Agent (SA)</h1>
9
10 <h3>HSDB GUI</h3>
11 <p>
12 The top-level GUI program using the HotSpot Serviceability Agent APIs is
13 called <b>HSDB</b>, the "HotSpot Debugger". To run it, type "hsdbproc.sh"
14 or "hsdbwindbg.bat" or 64-bit variants (on Unix, Windows platforms
15 respectively). More info. on HSDB GUI are in <a href="hsdb.html">hsdb.html</a>.
16 </p>
17
18 <h3>SA Modes</h3>
19 <p>
20 There are three modes for the SA debugger:
21 <ul>
22 <li>attaching to a local process,
23 <li>opening a core file, and
24 <li>attaching to a remote "debug server".
25 </ul>
26 <p>
27 The remote case requires two programs to be running on the remote machine:
28 the rmiregistry (see the script "start-rmiregistry.sh" in this directory;
29 run this in the background) and the debug server (see the script
30 "start-debug-server-proc.sh"), in that order. start-rmiregistry.sh takes no
31 arguments; start-debug-server-proc.sh (or -windbg.bat) takes as argument
32 the process ID or the executable and core file names to allow remote debugging
33 of.
34 </p>
35
36 <h3>Command line HSDB</h3>
37 <p>
38 There are also command line HSDB variants ("clhsdbproc.sh" or "clhsdbwindbg.bat"
39 or 64-bit variants). There is also a JavaScript based command line interface
40 called "jsdbproc.sh" [or "jsdbwindbg.bat" or 64-bit variants]. More details on
41 command line interfaces can be found in
42 <ul>
43 <li><a href="clhsdb.html">clhsdb.html</a>
44 <li><a href="jsdb.html">jsdb.html</a>
45 </ul>
46 </p>
47
48 <h3>Other command line tools</h3>
49 <p>
50 The following table lists all SA command line tools. &lt;xxx&gt;windbg.bat
51 files are for Windows. .sh files are for Solaris. &lt;xxx&gt;64.sh are for
52 64 bit debugees.
53 </p>
54
55 <table border="1">
56 <tr>
57 <th>
58 Tool
59 </th>
60 <th>
61 Description
62 </th>
63 </tr>
64
65 <tr>
66 <td>
67 dumpflagsproc.sh,
68 dumpflagsproc64.sh,
69 dumpflagswindbg.bat
70 dumpflagswindbg64.bat
71 </td>
72 <td>
73 dumps name and value of all -XX JVM command line arguments passed
74 to debuggee.
75 </td>
76 </tr>
77
78 <tr>
79 <td>
80 <a name="dumpsysprops"></a>
81 dumpsyspropsproc.sh,
82 dumpsyspropsproc64.sh,
83 dumpsyspropswindbg.bat
84 dumpsyspropswindbg64.bat
85 </td>
86 <td>
87 This prints name and value of Java level System properties.
88 </td>
89 </tr>
90
91 <tr>
92 <td>
93 <a name="heapdump"></a>
94 heapdumpproc.sh,
95 heapdumpproc64.sh,
96 heapdumpwindbg.bat
97 heapdumpwindbg64.bat
98 </td>
99 <td>
100 Dumps heap in a file in hprof binary format.
101 </td>
102 </tr>
103
104 <tr>
105 <td>
106 <a name="heapsum"></a>
107 heapsumproc.sh,
108 heapsumproc64.sh,
109 heapsumwindbg.bat
110 heapsumwindbg64.bat
111 </td>
112 <td>
113 Prints summary information on Java heap.
114 </td>
115 </tr>
116
117
118 <tr>
119 <td>
120 jcoreproc.sh,
121 jcoreproc64.sh,
122 jcorewindbg.bat
123 jcorewindbg64.bat
124 </td>
125 <td>
126 This can retrieve .class files from the debuggee.
127 set the environment variable <b>JCORE_PACKAGES</b> to comman separated list of
128 packages whose classes have to be retrieved from the core file.
129 </td>
130 </tr>
131
132 <tr>
133 <tr>
134 <td>
135 jstackproc.sh,
136 jstackproc64.sh,
137 jstackwindbg.bat
138 jstackwindbg64.bat
139 </td>
140 <td>
141 used to get java stack trace for all java threads.
142 </td>
143 </tr>
144
145 <tr>
146 <td>
147 jhistoproc.sh,
148 jhistoproc64.sh,
149 jhistowindbg.bat
150 jhistowindbg64.bat
151 </td>
152 <td>
153 used to get object histogram of java heap.
154 </td>
155 </tr>
156
157 <tr>
158 <td>
159 permstatproc.sh,
160 permstatproc64.sh,
161 permstatwindbg.bat
162 permstatwindbg64.bat
163 </td>
164 <td>
165 To gather statistics on perm. generation.
166 </td>
167 </tr>
168
169 <a name="mixed_pstack"></a>
170 <tr>
171 <tr>
172 <td>
173 pstackproc.sh,
174 pstackproc64.sh,
175 pstackwindbg.bat
176 pstackwindbg64.bat
177 </td>
178 <td>
179 This is cross platform mixed mode pstack utility. This works on any (non-java as well) process, core dump. For java process and core dumps, this prints both java and C/C++ frames.
180 </td>
181 </tr>
182
183 <tr>
184 <td>
185 pmapproc.sh,
186 pmapproc64.sh,
187 pmapwindbg.bat
188 pmapwindbg64.bat
189 </td>
190 <td>
191 This is cross platform Solaris pmap-like utility.
192 </td>
193 </tr>
194
195 <tr>
196 <td>
197 soqlproc.sh,
198 soqlproc64.sh,
199 soqlwindbg.bat
200 soqlwindbg64.bat
201 </td>
202 <td>
203 This is command line SOQL - Simple Object Query Language tool.
204 SOQL is SQL-like query language to query Java heap.
205 </td>
206 <tr>
207 <td>
208 start-debug-server-proc.sh,
209 start-debug-server-proc64.sh,
210 start-debug-server-windbg.bat,
211 start-debug-server-windbg64.bat,
212 start-rmiregistry.bat,
213 start-rmiregistry64.bat,
214 start-rmiregistry.sh
215 start-rmiregistry64.sh
216 </td>
217 <td>
218 These scripts are used to run SA remotely.
219 </td>
220 </tr>
221 </table>
222
223 <h3>Debugging transported core dumps</h3>
224 <p>
225 When a core dump is moved from the machine where it was produced to a
226 difference machine, it may not always be possible for SA to debug the same.
227 More info. on debugging on transported core dumps is in
228 <a href="transported_core.html">transported_core.html</a>.
229 </p>
230
231 <h3>SA Bugs</h3>
232 <p>
233 Not all of the possible states of target VMs have been tested (or
234 supportable) with SA. For example, the SA will probably not work at all
235 if it freezes the target VM during certain phases of GC. When filing bugs
236 a pointer to a core file (see gcore(1)) which the SA can not handle well
237 is best.
238 </p>
239
240 </body>
241 </html>