You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 <ahref="hsdb.html">hsdb.html</a>.
13
+
called <b>HSDB</b>, the "HotSpot Debugger". To run it, type "jhsdb hsdb".
14
+
More info on HSDB GUI are in <ahref="hsdb.html">hsdb.html</a>. Also
15
+
see the "jhsdb" man page.
16
16
</p>
17
17
18
18
<h3>SA Modes</h3>
19
19
<p>
20
-
There are three modes for the SA debugger:
20
+
There are three modes for the SA debugger:
21
21
<ul>
22
-
<li>attaching to a local process,
23
-
<li>opening a core file, and
24
-
<li>attaching to a remote "debug server".
22
+
<li>attaching to a local process
23
+
<li>opening a core file
24
+
<li>attaching to a remote "debug server"
25
25
</ul>
26
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.
27
+
The remote case requires running the debug server on the remote machine. This
28
+
is done by running "jhsdb debugd", and also adding arguments specifying the core
29
+
file or process to debug. Once this is done you can connect remotely
30
+
to the debug server by running various other "jhsdb" subcommands, and specifying
31
+
which debug server to connect to. See the "jhsdb" man page for details.
34
32
</p>
35
33
36
34
<h3>Command line HSDB</h3>
37
35
<p>
38
-
There is also a command line HSDB variant. More details on the command line interface can be found in:
39
-
<ul>
36
+
There is also a command line HSDB variant. It is launched using "jhsdb clhsdb".
37
+
More details on the command line interface can be found in the "jhsdb" man page and also in:<ul>
40
38
<li><ahref="clhsdb.html">clhsdb.html</a>
41
-
</ul>
42
-
</p>
43
-
44
-
<h3>Other command line tools</h3>
45
-
<p>
46
-
The following table lists all SA command line tools. <xxx>windbg.bat
47
-
files are for Windows. .sh files are for Solaris. <xxx>64.sh are for
48
-
64 bit debugees.
39
+
</ul>
49
40
</p>
50
41
51
-
<tableborder="1">
52
-
<tr>
53
-
<th>
54
-
Tool
55
-
</th>
56
-
<th>
57
-
Description
58
-
</th>
59
-
</tr>
60
-
61
-
<tr>
62
-
<td>
63
-
dumpflagsproc.sh,
64
-
dumpflagsproc64.sh,
65
-
dumpflagswindbg.bat
66
-
dumpflagswindbg64.bat
67
-
</td>
68
-
<td>
69
-
dumps name and value of all -XX JVM command line arguments passed
70
-
to debuggee.
71
-
</td>
72
-
</tr>
73
-
74
-
<tr>
75
-
<td>
76
-
<aname="dumpsysprops"></a>
77
-
dumpsyspropsproc.sh,
78
-
dumpsyspropsproc64.sh,
79
-
dumpsyspropswindbg.bat
80
-
dumpsyspropswindbg64.bat
81
-
</td>
82
-
<td>
83
-
This prints name and value of Java level System properties.
84
-
</td>
85
-
</tr>
86
-
87
-
<tr>
88
-
<td>
89
-
<aname="heapdump"></a>
90
-
heapdumpproc.sh,
91
-
heapdumpproc64.sh,
92
-
heapdumpwindbg.bat
93
-
heapdumpwindbg64.bat
94
-
</td>
95
-
<td>
96
-
Dumps heap in a file in hprof binary format.
97
-
</td>
98
-
</tr>
99
-
100
-
<tr>
101
-
<td>
102
-
<aname="heapsum"></a>
103
-
heapsumproc.sh,
104
-
heapsumproc64.sh,
105
-
heapsumwindbg.bat
106
-
heapsumwindbg64.bat
107
-
</td>
108
-
<td>
109
-
Prints summary information on Java heap.
110
-
</td>
111
-
</tr>
112
-
113
-
114
-
<tr>
115
-
<td>
116
-
jcoreproc.sh,
117
-
jcoreproc64.sh,
118
-
jcorewindbg.bat
119
-
jcorewindbg64.bat
120
-
</td>
121
-
<td>
122
-
This can retrieve .class files from the debuggee.
123
-
set the environment variable <b>JCORE_PACKAGES</b> to comman separated list of
124
-
packages whose classes have to be retrieved from the core file.
125
-
</td>
126
-
</tr>
127
-
128
-
<tr>
129
-
<tr>
130
-
<td>
131
-
jstackproc.sh,
132
-
jstackproc64.sh,
133
-
jstackwindbg.bat
134
-
jstackwindbg64.bat
135
-
</td>
136
-
<td>
137
-
used to get java stack trace for all java threads.
138
-
</td>
139
-
</tr>
140
-
141
-
<tr>
142
-
<td>
143
-
jhistoproc.sh,
144
-
jhistoproc64.sh,
145
-
jhistowindbg.bat
146
-
jhistowindbg64.bat
147
-
</td>
148
-
<td>
149
-
used to get object histogram of java heap.
150
-
</td>
151
-
</tr>
152
-
153
-
<tr>
154
-
<td>
155
-
permstatproc.sh,
156
-
permstatproc64.sh,
157
-
permstatwindbg.bat
158
-
permstatwindbg64.bat
159
-
</td>
160
-
<td>
161
-
To gather statistics on perm. generation.
162
-
</td>
163
-
</tr>
164
-
165
-
<aname="mixed_pstack"></a>
166
-
<tr>
167
-
<tr>
168
-
<td>
169
-
pstackproc.sh,
170
-
pstackproc64.sh,
171
-
pstackwindbg.bat
172
-
pstackwindbg64.bat
173
-
</td>
174
-
<td>
175
-
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.
176
-
</td>
177
-
</tr>
178
-
179
-
<tr>
180
-
<td>
181
-
pmapproc.sh,
182
-
pmapproc64.sh,
183
-
pmapwindbg.bat
184
-
pmapwindbg64.bat
185
-
</td>
186
-
<td>
187
-
This is cross platform Solaris pmap-like utility.
188
-
</td>
189
-
</tr>
190
-
191
-
<td>
192
-
start-debug-server-proc.sh,
193
-
start-debug-server-proc64.sh,
194
-
start-debug-server-windbg.bat,
195
-
start-debug-server-windbg64.bat,
196
-
start-rmiregistry.bat,
197
-
start-rmiregistry64.bat,
198
-
start-rmiregistry.sh
199
-
start-rmiregistry64.sh
200
-
</td>
201
-
<td>
202
-
These scripts are used to run SA remotely.
203
-
</td>
204
-
</tr>
205
-
</table>
206
-
207
-
<h3>C2 Compilation Replay</h3>
42
+
<h3>Compilation Replay</h3>
208
43
<p>
209
-
When a java process crashes in compiled method, usually a core file is saved.
210
-
The C2 replay function can reproduce the compiling process in the core.
211
-
<ahref="c2replay.html">c2replay.html</a>
44
+
When a java process crashes in a compiled method, usually a core file is saved.
45
+
The compiler replay function can reproduce the compiling process in the core.
46
+
See <ahref="cireplay.html">cireplay.html</a>
212
47
213
48
<h3>Debugging transported core dumps</h3>
214
49
<p>
215
50
When a core dump is moved from the machine where it was produced to a
216
-
difference machine, it may not always be possible for SA to debug the same.
217
-
More info. on debugging on transported core dumps is in
51
+
different machine, it may not always be possible for SA to debug it.
52
+
More info on debugging on transported core dumps is in
0 commit comments