annotate agent/make/index.html @ 13450:5f07ec8bb982 jdk8-b121

Added tag hs25-b63 for changeset 41f4cad94c58
author amurillo
date Fri, 13 Dec 2013 09:40:58 -0800
parents a61af66fc99e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a61af66fc99e Initial load
duke
parents:
diff changeset
1 <HTML>
a61af66fc99e Initial load
duke
parents:
diff changeset
2
a61af66fc99e Initial load
duke
parents:
diff changeset
3
a61af66fc99e Initial load
duke
parents:
diff changeset
4 <HEAD>
a61af66fc99e Initial load
duke
parents:
diff changeset
5 <TITLE>
a61af66fc99e Initial load
duke
parents:
diff changeset
6 Using The HotSpot Serviceability Agent
a61af66fc99e Initial load
duke
parents:
diff changeset
7 </TITLE>
a61af66fc99e Initial load
duke
parents:
diff changeset
8 </HEAD>
a61af66fc99e Initial load
duke
parents:
diff changeset
9
a61af66fc99e Initial load
duke
parents:
diff changeset
10 <BODY TEXT="#000000" BGCOLOR="#FFFFFF">
a61af66fc99e Initial load
duke
parents:
diff changeset
11 <H1>
a61af66fc99e Initial load
duke
parents:
diff changeset
12 Using The HotSpot Serviceability Agent
a61af66fc99e Initial load
duke
parents:
diff changeset
13 </H1>
a61af66fc99e Initial load
duke
parents:
diff changeset
14
a61af66fc99e Initial load
duke
parents:
diff changeset
15 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
16 <H2>
a61af66fc99e Initial load
duke
parents:
diff changeset
17 Contents
a61af66fc99e Initial load
duke
parents:
diff changeset
18 </H2>
a61af66fc99e Initial load
duke
parents:
diff changeset
19 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
20
a61af66fc99e Initial load
duke
parents:
diff changeset
21 <UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
22 <LI> <A HREF = "#INTRODUCTION">Introduction</A>
a61af66fc99e Initial load
duke
parents:
diff changeset
23 <LI> <A HREF = "#SOURCES">Organization of the sources</A>
a61af66fc99e Initial load
duke
parents:
diff changeset
24 <LI> <A HREF = "#RUNNING">Running HSDB</A>
a61af66fc99e Initial load
duke
parents:
diff changeset
25 <LI> <A HREF = "#NOTES">Notes</A>
a61af66fc99e Initial load
duke
parents:
diff changeset
26 </UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
27
a61af66fc99e Initial load
duke
parents:
diff changeset
28 <H2>
a61af66fc99e Initial load
duke
parents:
diff changeset
29 <A NAME="INTRODUCTION">
a61af66fc99e Initial load
duke
parents:
diff changeset
30 Introduction
a61af66fc99e Initial load
duke
parents:
diff changeset
31 </A>
a61af66fc99e Initial load
duke
parents:
diff changeset
32 </H2>
a61af66fc99e Initial load
duke
parents:
diff changeset
33
a61af66fc99e Initial load
duke
parents:
diff changeset
34 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
35 The HotSpot Serviceability Agent (SA) is a set of Java APIs which
a61af66fc99e Initial load
duke
parents:
diff changeset
36 mirror the internal APIs of the HotSpot VM and which can be used to
a61af66fc99e Initial load
duke
parents:
diff changeset
37 examine the state of a HotSpot VM.
a61af66fc99e Initial load
duke
parents:
diff changeset
38 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
39
a61af66fc99e Initial load
duke
parents:
diff changeset
40 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
41 The system understands the layout of certain VM data structures and is
a61af66fc99e Initial load
duke
parents:
diff changeset
42 able to traverse these structures in an examination-only fashion; that
a61af66fc99e Initial load
duke
parents:
diff changeset
43 is, it does not rely on being able to run code in the target VM. For
a61af66fc99e Initial load
duke
parents:
diff changeset
44 this reason it transparently works with either a running VM or a core
a61af66fc99e Initial load
duke
parents:
diff changeset
45 file.
a61af66fc99e Initial load
duke
parents:
diff changeset
46 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
47
a61af66fc99e Initial load
duke
parents:
diff changeset
48 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
49 The system can reconstruct information about Java frames on the stack
a61af66fc99e Initial load
duke
parents:
diff changeset
50 and objects in the heap. Many of the important data structures in the
a61af66fc99e Initial load
duke
parents:
diff changeset
51 VM like the CodeCache, Universe, StubQueue, Frames, and VFrames have
a61af66fc99e Initial load
duke
parents:
diff changeset
52 been exposed and have relatively complete (or at least useful)
a61af66fc99e Initial load
duke
parents:
diff changeset
53 implementations.
a61af66fc99e Initial load
duke
parents:
diff changeset
54 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
55
a61af66fc99e Initial load
duke
parents:
diff changeset
56 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
57 A small graphical debugger called HSDB (the "HotSpot Debugger") has
a61af66fc99e Initial load
duke
parents:
diff changeset
58 been written using these APIs. It provides stack memory dumps
a61af66fc99e Initial load
duke
parents:
diff changeset
59 annotated with method invocations, compiled-code inlining (if
a61af66fc99e Initial load
duke
parents:
diff changeset
60 present), interpreted vs. compiled code, interpreter codelets (if
a61af66fc99e Initial load
duke
parents:
diff changeset
61 interpreted), and live oops from oop-map information. It also provides
a61af66fc99e Initial load
duke
parents:
diff changeset
62 a tree-based oop inspector. More information will be added as
a61af66fc99e Initial load
duke
parents:
diff changeset
63 necessary; please <A HREF = "mailto:kenneth.russell@eng">send
a61af66fc99e Initial load
duke
parents:
diff changeset
64 email</A> with suggestions on what would be useful.
a61af66fc99e Initial load
duke
parents:
diff changeset
65 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
66
a61af66fc99e Initial load
duke
parents:
diff changeset
67 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
68 The SA currently only works on Solaris. It uses dbx to connect to the
a61af66fc99e Initial load
duke
parents:
diff changeset
69 remote process or core file and communicates with a small piece of
a61af66fc99e Initial load
duke
parents:
diff changeset
70 code (an "import module") loaded into the debugger.
a61af66fc99e Initial load
duke
parents:
diff changeset
71 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
72
a61af66fc99e Initial load
duke
parents:
diff changeset
73 <H2>
a61af66fc99e Initial load
duke
parents:
diff changeset
74 <A NAME="SOURCES">
a61af66fc99e Initial load
duke
parents:
diff changeset
75 Organization of the sources
a61af66fc99e Initial load
duke
parents:
diff changeset
76 </A>
a61af66fc99e Initial load
duke
parents:
diff changeset
77 </H2>
a61af66fc99e Initial load
duke
parents:
diff changeset
78
a61af66fc99e Initial load
duke
parents:
diff changeset
79 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
80 The Java-side source code, which is the bulk of the SA, is in
a61af66fc99e Initial load
duke
parents:
diff changeset
81 src/share/vm/agent. The organization of the sun.jvm.hotspot package
a61af66fc99e Initial load
duke
parents:
diff changeset
82 hierarchy mirrors the organization in the VM. This should allow
a61af66fc99e Initial load
duke
parents:
diff changeset
83 engineers familiar with the HotSpot sources to quickly understand how
a61af66fc99e Initial load
duke
parents:
diff changeset
84 the SA works and to make modifications if necessary. To build these
a61af66fc99e Initial load
duke
parents:
diff changeset
85 sources, cd to src/share/vm/agent and type "make".
a61af66fc99e Initial load
duke
parents:
diff changeset
86 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
87
a61af66fc99e Initial load
duke
parents:
diff changeset
88 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
89
a61af66fc99e Initial load
duke
parents:
diff changeset
90 The SA on Solaris works by communicating with a small piece of code
a61af66fc99e Initial load
duke
parents:
diff changeset
91 (an "import module") loaded into dbx. The source code for this import
a61af66fc99e Initial load
duke
parents:
diff changeset
92 module is in src/os/solaris/agent. To build this library, cd to
a61af66fc99e Initial load
duke
parents:
diff changeset
93 src/os/solaris/agent and type "make 32bit" or "make 64bit". The
a61af66fc99e Initial load
duke
parents:
diff changeset
94 distinction is necessary because the SPARC version of dbx ships with
a61af66fc99e Initial load
duke
parents:
diff changeset
95 two versions of its executable, and depending on which architecture
a61af66fc99e Initial load
duke
parents:
diff changeset
96 (v8 or v9) the debugger is running on selects the appropriate
a61af66fc99e Initial load
duke
parents:
diff changeset
97 executable. The SA tries the v8 version first, but if you are running
a61af66fc99e Initial load
duke
parents:
diff changeset
98 on a v9 machine you must provide both versions to the SA.
a61af66fc99e Initial load
duke
parents:
diff changeset
99 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
100
a61af66fc99e Initial load
duke
parents:
diff changeset
101 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
102
a61af66fc99e Initial load
duke
parents:
diff changeset
103 The system is currently hardwired to look on jano for its dbx
a61af66fc99e Initial load
duke
parents:
diff changeset
104 executable and import module. The relevant directory structure looks
a61af66fc99e Initial load
duke
parents:
diff changeset
105 like this:
a61af66fc99e Initial load
duke
parents:
diff changeset
106
a61af66fc99e Initial load
duke
parents:
diff changeset
107 <UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
108 <LI> .../hotspot/sa/
a61af66fc99e Initial load
duke
parents:
diff changeset
109 <UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
110 <LI> solaris/
a61af66fc99e Initial load
duke
parents:
diff changeset
111 <UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
112 <LI> sparc/
a61af66fc99e Initial load
duke
parents:
diff changeset
113 <UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
114 <LI> bin/
a61af66fc99e Initial load
duke
parents:
diff changeset
115 <UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
116 <LI> dbx: symlink to (v8) dbx 7.0 executable
a61af66fc99e Initial load
duke
parents:
diff changeset
117 </UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
118 </UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
119 <UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
120 <LI> lib/
a61af66fc99e Initial load
duke
parents:
diff changeset
121 <UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
122 <LI> libsvc_agent_dbx.so: 32-bit version of import module
a61af66fc99e Initial load
duke
parents:
diff changeset
123 </UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
124 </UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
125 <LI> sparcv9/
a61af66fc99e Initial load
duke
parents:
diff changeset
126 <UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
127 <LI> lib/
a61af66fc99e Initial load
duke
parents:
diff changeset
128 <UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
129 <LI> libsvc_agent_dbx.so: 32-bit version of import module
a61af66fc99e Initial load
duke
parents:
diff changeset
130 </UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
131 </UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
132 </UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
133 </UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
134 </UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
135 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
136
a61af66fc99e Initial load
duke
parents:
diff changeset
137 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
138 The code which builds up path names to these executables is contained
a61af66fc99e Initial load
duke
parents:
diff changeset
139 in sun.jvm.hotspot.HotSpotAgent.java. There are hardcoded paths in
a61af66fc99e Initial load
duke
parents:
diff changeset
140 this file to jano, but the rest of the system is isolated from this.
a61af66fc99e Initial load
duke
parents:
diff changeset
141 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
142
a61af66fc99e Initial load
duke
parents:
diff changeset
143 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
144 (It would be nice to have a panel in the debugger allowing
a61af66fc99e Initial load
duke
parents:
diff changeset
145 configuration of all of the known operating systems' options; right
a61af66fc99e Initial load
duke
parents:
diff changeset
146 now Solaris is the only supported OS, making that easier.)
a61af66fc99e Initial load
duke
parents:
diff changeset
147 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
148
a61af66fc99e Initial load
duke
parents:
diff changeset
149 <H2>
a61af66fc99e Initial load
duke
parents:
diff changeset
150 <A NAME="RUNNING">
a61af66fc99e Initial load
duke
parents:
diff changeset
151 Running HSDB
a61af66fc99e Initial load
duke
parents:
diff changeset
152 </A>
a61af66fc99e Initial load
duke
parents:
diff changeset
153 </H2>
a61af66fc99e Initial load
duke
parents:
diff changeset
154
a61af66fc99e Initial load
duke
parents:
diff changeset
155 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
156 An installation of HSDB has been placed on jano. To access it, add the
a61af66fc99e Initial load
duke
parents:
diff changeset
157 following directory to your PATH:
a61af66fc99e Initial load
duke
parents:
diff changeset
158 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
159
a61af66fc99e Initial load
duke
parents:
diff changeset
160 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
161 <PRE>
a61af66fc99e Initial load
duke
parents:
diff changeset
162 /net/jano/export/disk05/hotspot/sa/bin/common
a61af66fc99e Initial load
duke
parents:
diff changeset
163 </PRE>
a61af66fc99e Initial load
duke
parents:
diff changeset
164 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
165
a61af66fc99e Initial load
duke
parents:
diff changeset
166 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
167 To start the debugger, type "hsdb".
a61af66fc99e Initial load
duke
parents:
diff changeset
168 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
169
a61af66fc99e Initial load
duke
parents:
diff changeset
170 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
171 Alternatively, you can start a local build of the debugger by building
a61af66fc99e Initial load
duke
parents:
diff changeset
172 the sources in src/share/vm/agent, cd'ing to that directory, and
a61af66fc99e Initial load
duke
parents:
diff changeset
173 typing "java sun.jvm.hotspot.HSDB".
a61af66fc99e Initial load
duke
parents:
diff changeset
174 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
175
a61af66fc99e Initial load
duke
parents:
diff changeset
176 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
177 There are three modes for the debugger: attaching to a local process,
a61af66fc99e Initial load
duke
parents:
diff changeset
178 opening a core file, and attaching to a remote "debug server". The
a61af66fc99e Initial load
duke
parents:
diff changeset
179 remote case requires two programs to be running on the remote machine:
a61af66fc99e Initial load
duke
parents:
diff changeset
180 the rmiregistry (see the script "start-rmiregistry" in this directory;
a61af66fc99e Initial load
duke
parents:
diff changeset
181 run this in the background) and the debug server (see the script
a61af66fc99e Initial load
duke
parents:
diff changeset
182 "start-debug-server"), in that order. start-rmiregistry takes no
a61af66fc99e Initial load
duke
parents:
diff changeset
183 arguments; start-debug-server takes as argument the process ID or the
a61af66fc99e Initial load
duke
parents:
diff changeset
184 executable and core file names to allow remote debugging of. Make sure
a61af66fc99e Initial load
duke
parents:
diff changeset
185 you do NOT have a CLASSPATH environment variable set when you run
a61af66fc99e Initial load
duke
parents:
diff changeset
186 these scripts. (The classes put into the rmiregistry are in sun.*, and
a61af66fc99e Initial load
duke
parents:
diff changeset
187 there are permissions problems if they aren't placed on the boot
a61af66fc99e Initial load
duke
parents:
diff changeset
188 classpath.)
a61af66fc99e Initial load
duke
parents:
diff changeset
189 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
190
a61af66fc99e Initial load
duke
parents:
diff changeset
191 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
192 NOTE that the SA currently only works against VMs on Solaris/SPARC.
a61af66fc99e Initial load
duke
parents:
diff changeset
193 Remote debugging of Solaris/SPARC VMs on arbitrary platforms is
a61af66fc99e Initial load
duke
parents:
diff changeset
194 possible using the debug server; select "Connect to debug server..."
a61af66fc99e Initial load
duke
parents:
diff changeset
195 in HSDB.
a61af66fc99e Initial load
duke
parents:
diff changeset
196 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
197
a61af66fc99e Initial load
duke
parents:
diff changeset
198 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
199 Once the debugger has been launched, the threads list is displayed.
a61af66fc99e Initial load
duke
parents:
diff changeset
200 The current set of functionality allows:
a61af66fc99e Initial load
duke
parents:
diff changeset
201 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
202
a61af66fc99e Initial load
duke
parents:
diff changeset
203 <UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
204 <LI> Browsing of the annotated stack memory ("Stack Memory" button). It
a61af66fc99e Initial load
duke
parents:
diff changeset
205 is currently annotated with the following information:
a61af66fc99e Initial load
duke
parents:
diff changeset
206 <UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
207 <LI> Method names of the Java frames and their extents (supporting
a61af66fc99e Initial load
duke
parents:
diff changeset
208 inlined compiled methods)
a61af66fc99e Initial load
duke
parents:
diff changeset
209 <LI> Locations and types of oops, found using the oop map information
a61af66fc99e Initial load
duke
parents:
diff changeset
210 from compiled methods (interpreter oop maps coming soon)
a61af66fc99e Initial load
duke
parents:
diff changeset
211 <LI> If a Java frame was interrupted by a signal (e.g., because of a
a61af66fc99e Initial load
duke
parents:
diff changeset
212 crash), annotates the frame with the signal name and number
a61af66fc99e Initial load
duke
parents:
diff changeset
213 <LI> Interpreter codelet descriptions for interpreted frames
a61af66fc99e Initial load
duke
parents:
diff changeset
214 </UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
215 <LI> Finding which thread or threads caused a crash (currently
a61af66fc99e Initial load
duke
parents:
diff changeset
216 identified by the presence of a signal handler frame)
a61af66fc99e Initial load
duke
parents:
diff changeset
217 <LI> Browsing of oops using the Oop Inspector.
a61af66fc99e Initial load
duke
parents:
diff changeset
218 <LI> Browsing of the java.lang.Thread object's oop.
a61af66fc99e Initial load
duke
parents:
diff changeset
219 <LI> Object histogram and inspection of objects therein.
a61af66fc99e Initial load
duke
parents:
diff changeset
220 </UL>
a61af66fc99e Initial load
duke
parents:
diff changeset
221 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
222
a61af66fc99e Initial load
duke
parents:
diff changeset
223 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
224 More functionality is planned. Please <A HREF =
a61af66fc99e Initial load
duke
parents:
diff changeset
225 "mailto:kenneth.russell@eng">send email</A> with suggestions on what
a61af66fc99e Initial load
duke
parents:
diff changeset
226 would be useful, with any questions or comments, or if the debugger
a61af66fc99e Initial load
duke
parents:
diff changeset
227 crashes.
a61af66fc99e Initial load
duke
parents:
diff changeset
228 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
229
a61af66fc99e Initial load
duke
parents:
diff changeset
230 <H2>
a61af66fc99e Initial load
duke
parents:
diff changeset
231 <A NAME="NOTES">
a61af66fc99e Initial load
duke
parents:
diff changeset
232 Notes
a61af66fc99e Initial load
duke
parents:
diff changeset
233 </A>
a61af66fc99e Initial load
duke
parents:
diff changeset
234 </H2>
a61af66fc99e Initial load
duke
parents:
diff changeset
235
a61af66fc99e Initial load
duke
parents:
diff changeset
236 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
237 HSDB does not suspend the system at a safepoint, but at an arbitrary
a61af66fc99e Initial load
duke
parents:
diff changeset
238 point. This means that many of the invariants in the VM's code are not
a61af66fc99e Initial load
duke
parents:
diff changeset
239 followed.
a61af66fc99e Initial load
duke
parents:
diff changeset
240 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
241
a61af66fc99e Initial load
duke
parents:
diff changeset
242 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
243 As it happens, most of the places where the code ported over from the
a61af66fc99e Initial load
duke
parents:
diff changeset
244 VM has failed involve the topmost frame on the stack. Some
a61af66fc99e Initial load
duke
parents:
diff changeset
245 modifications have been made to allow the system to recognize
a61af66fc99e Initial load
duke
parents:
diff changeset
246 problematic situations.
a61af66fc99e Initial load
duke
parents:
diff changeset
247 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
248
a61af66fc99e Initial load
duke
parents:
diff changeset
249 <P>
a61af66fc99e Initial load
duke
parents:
diff changeset
250 Certainly, not all of the failure modes of the debugger have been
a61af66fc99e Initial load
duke
parents:
diff changeset
251 found. Please <A HREF = "mailto:kenneth.russell@eng">send email</A> if
a61af66fc99e Initial load
duke
parents:
diff changeset
252 HSDB throws an exception. The best debugging aid in these situations
a61af66fc99e Initial load
duke
parents:
diff changeset
253 is a core file since it is a static view of the VM to which we can
a61af66fc99e Initial load
duke
parents:
diff changeset
254 then adapt the debugger code, as opposed to having to try to suspend
a61af66fc99e Initial load
duke
parents:
diff changeset
255 the VM over and over to reproduce the failure. gcore (1) is a useful
a61af66fc99e Initial load
duke
parents:
diff changeset
256 tool. (NOTE: do not try gcore with any application using the DGA X
a61af66fc99e Initial load
duke
parents:
diff changeset
257 server extension (example: Java2Demo); the kernel will panic. See bug
a61af66fc99e Initial load
duke
parents:
diff changeset
258 4343237.)
a61af66fc99e Initial load
duke
parents:
diff changeset
259 </P>
a61af66fc99e Initial load
duke
parents:
diff changeset
260
a61af66fc99e Initial load
duke
parents:
diff changeset
261 </BODY>
a61af66fc99e Initial load
duke
parents:
diff changeset
262 </HTML>