annotate agent/doc/cireplay.html @ 13450:5f07ec8bb982 jdk8-b121

Added tag hs25-b63 for changeset 41f4cad94c58
author amurillo
date Fri, 13 Dec 2013 09:40:58 -0800
parents 7b23cb975cf2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6972
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
1 <html>
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
2 <head>
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
3 <title>
10197
7b23cb975cf2 8011675: adding compilation level to replay data
iignatyev
parents: 6972
diff changeset
4 Replay
6972
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
5 </title>
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
6 </head>
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
7 <body>
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
8
10197
7b23cb975cf2 8011675: adding compilation level to replay data
iignatyev
parents: 6972
diff changeset
9 <h1>Compiler replay</h1>
6972
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
10 <p>
10197
7b23cb975cf2 8011675: adding compilation level to replay data
iignatyev
parents: 6972
diff changeset
11 The compiler replay is a function to repeat the compiling process from a crashed java process in compiled method<br>
6972
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
12 This function only exists in debug version of VM
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
13 </p>
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
14 <h2>Usage</h2>
10197
7b23cb975cf2 8011675: adding compilation level to replay data
iignatyev
parents: 6972
diff changeset
15 <pre>
7b23cb975cf2 8011675: adding compilation level to replay data
iignatyev
parents: 6972
diff changeset
16 First, use SA to attach to the core file, if succeeded, do
7b23cb975cf2 8011675: adding compilation level to replay data
iignatyev
parents: 6972
diff changeset
17 hsdb&gt; dumpreplaydata &lt;address&gt; | -a | &lt;thread_id&gt; [&gt; replay.txt]
6972
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
18 create file replay.txt, address is address of Method, or nmethod(CodeBlob)
10197
7b23cb975cf2 8011675: adding compilation level to replay data
iignatyev
parents: 6972
diff changeset
19 hsdb&gt; buildreplayjars [all | boot | app]
6972
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
20 create files:
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
21 all:
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
22 app.jar, boot.jar
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
23 boot:
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
24 boot.jar
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
25 app:
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
26 app.jar
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
27 exit SA now.
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
28 Second, use the obtained replay text file, replay.txt and jar files, app.jar and boot.jar, using debug version of java
10197
7b23cb975cf2 8011675: adding compilation level to replay data
iignatyev
parents: 6972
diff changeset
29 java -Xbootclasspath/p:boot.jar -cp app.jar -XX:ReplayDataFile=&lt;datafile&gt; -XX:+ReplayCompiles ....
6972
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
30 This will replay the compiling process.
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
31
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
32 With ReplayCompiles, the replay will recompile all the methods in app.jar, and in boot.jar to emulate the process in java app.
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
33
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
34 notes:
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
35 1) Most time, we don't need the boot.jar which is the classes loaded from JDK. It will be only modified when an agent(JVMDI) is running and modifies the classes.
10197
7b23cb975cf2 8011675: adding compilation level to replay data
iignatyev
parents: 6972
diff changeset
36 2) If encounter error as "&lt;flag&gt;" not found, that means the SA is using a VMStructs which is different from the one with corefile. In this case, SA has a utility tool vmstructsdump which is located at agent/src/os/&lt;os&gt;/proc/&lt;os_platform&gt;
6972
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
37
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
38 Use this tool to dump VM type library:
10197
7b23cb975cf2 8011675: adding compilation level to replay data
iignatyev
parents: 6972
diff changeset
39 vmstructsdump libjvm.so &gt; &lt;type_name&gt;.db
6972
bd7a7ce2e264 6830717: replay of compilations would help with debugging
minqi
parents:
diff changeset
40
10197
7b23cb975cf2 8011675: adding compilation level to replay data
iignatyev
parents: 6972
diff changeset
41 set env SA_TYPEDB=&lt;type_name&gt;.db (refer different shell for set envs)