Mercurial > hg > truffle
annotate agent/doc/clhsdb.html @ 13536:419b3ea1bdd1
Truffle-DSL: removed try-catch hack for polymorphic invocations.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Tue, 07 Jan 2014 22:26:53 +0100 |
parents | 7b23cb975cf2 |
children |
rev | line source |
---|---|
0 | 1 <html> |
2 <head> | |
3 <title> | |
4 Command line HSDB | |
5 </title> | |
6 </head> | |
7 <body> | |
8 | |
9 <h1>Command line HSDB</h1> | |
10 <p> | |
11 When debugging remote core dumps it is easier to work with command line tools instead of | |
12 GUI tools. Command line HSDB (CLHSDB) tool is alternative to SA GUI tool HSDB. | |
13 </p> | |
14 | |
15 <p> | |
16 There is also JavaScript based SA command line interface called <a href="jsdb.html">jsdb</a>. | |
17 But, CLHSDB supports Unix shell-like (or dbx/gdb-like) command line interface with | |
10197
7b23cb975cf2
8011675: adding compilation level to replay data
iignatyev
parents:
6972
diff
changeset
|
18 support for output redirection/appending (familiar >, >>), command history and so on. |
0 | 19 Each CLHSDB command can have zero or more arguments and optionally end with output redirection |
20 (or append) to a file. Commands may be stored in a file and run using <b>source</b> command. | |
21 <b>help</b> command prints usage message for all supported commands (or a specific command) | |
22 </p> | |
23 | |
24 <h3>Shell/batch scripts to run command line HSDB</h3> | |
25 | |
26 <ul> | |
27 <li>clhsdbproc.sh | |
28 <li>clhsdbproc64.sh | |
29 <li>clhsdbwindbg.bat | |
30 <li>clhsdbwindbg64.bat | |
31 </ul> | |
32 | |
33 <h3>Annotated output of CLHSDB help command</h3> | |
34 | |
35 <pre> | |
36 <code> | |
37 Available commands: | |
38 assert true | false <font color="red">turn on/off asserts in SA code</font> | |
39 attach pid | exec core <font color="red">attach SA to a process or core</font> | |
6972
bd7a7ce2e264
6830717: replay of compilations would help with debugging
minqi
parents:
6725
diff
changeset
|
40 buildreplayjars [all | boot | app] <font color="red">build jars for replay, boot.jar for bootclasses, app.jar for application classes</font> |
0 | 41 class name <font color="red">find a Java class from debuggee and print oop</font> |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
0
diff
changeset
|
42 classes <font color="red">print all loaded Java classes with Klass*</font> |
0 | 43 detach <font color="red">detach SA from current target</font> |
44 dis address [ length ] <font color="red">disassemble (sparc/x86) specified number of instructions from given address</font> | |
6972
bd7a7ce2e264
6830717: replay of compilations would help with debugging
minqi
parents:
6725
diff
changeset
|
45 dissemble address <font color="red">disassemble nmethod</font> |
bd7a7ce2e264
6830717: replay of compilations would help with debugging
minqi
parents:
6725
diff
changeset
|
46 dumpcfg -a | id <font color="red">Dump the PhaseCFG for every compiler thread that has one live</font> |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
0
diff
changeset
|
47 dumpclass { address | name } [ directory ] <font color="red">dump .class file for given Klass* or class name</font> |
6972
bd7a7ce2e264
6830717: replay of compilations would help with debugging
minqi
parents:
6725
diff
changeset
|
48 dumpcodecache <font color="red">dump codecache contents</font> |
0 | 49 dumpheap [ file ] <font color="red">dump heap in hprof binary format</font> |
6972
bd7a7ce2e264
6830717: replay of compilations would help with debugging
minqi
parents:
6725
diff
changeset
|
50 dumpideal -a | id <font color="red">dump ideal graph like debug flag -XX:+PrintIdeal</font> |
bd7a7ce2e264
6830717: replay of compilations would help with debugging
minqi
parents:
6725
diff
changeset
|
51 dumpilt -a | id <font color="red">dump inline tree for C2 compilation</font> |
10197
7b23cb975cf2
8011675: adding compilation level to replay data
iignatyev
parents:
6972
diff
changeset
|
52 dumpreplaydata <address> | -a | <thread_id> [>replay.txt] <font color="red">dump replay data into a file</font> |
0 | 53 echo [ true | false ] <font color="red">turn on/off command echo mode</font> |
54 examine [ address/count ] | [ address,address] <font color="red">show contents of memory from given address</font> | |
55 field [ type [ name fieldtype isStatic offset address ] ] <font color="red">print info about a field of HotSpot type</font> | |
56 findpc address <font color="red">print info. about pointer location</font> | |
57 flags [ flag ] <font color="red">show all -XX flag name value pairs. or just show given flag</font> | |
58 help [ command ] <font color="red">print help message for all commands or just given command</font> | |
59 history <font color="red">show command history. usual !command-number syntax works.</font> | |
60 inspect expression <font color="red">inspect a given oop</font> | |
6972
bd7a7ce2e264
6830717: replay of compilations would help with debugging
minqi
parents:
6725
diff
changeset
|
61 intConstant [ name [ value ] ] <font color="red">print out hotspot integer constant(s)</font> |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
0
diff
changeset
|
62 jdis address <font color="red">show bytecode disassembly of a given Method*</font> |
0 | 63 jhisto <font color="red">show Java heap histogram</font> |
64 jseval script <font color="red">evaluate a given string as JavaScript code</font> | |
65 jsload file <font color="red">load and evaluate a JavaScript file</font> | |
66 jstack [-v] <font color="red">show Java stack trace of all Java threads. -v is verbose mode</font> | |
67 livenmethods <font color="red">show all live nmethods</font> | |
6972
bd7a7ce2e264
6830717: replay of compilations would help with debugging
minqi
parents:
6725
diff
changeset
|
68 longConstant [ name [ value ] ] <font color="red">print out hotspot long constant(s)s</font> |
0 | 69 mem address [ length ] <font color="red">show contents of memory -- also shows closest ELF/COFF symbol if found</font> |
70 pmap <font color="red">show Solaris pmap-like output</font> | |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
0
diff
changeset
|
71 print expression <font color="red">print given Klass*, Method* or arbitrary address</font> |
0 | 72 printas type expression <font color="red">print given address as given HotSpot type. eg. print JavaThread <address></font> |
6972
bd7a7ce2e264
6830717: replay of compilations would help with debugging
minqi
parents:
6725
diff
changeset
|
73 printmdo -a | expression <font color="red">print method data oop</font> |
0 | 74 printstatics [ type ] <font color="red">print static fields of given HotSpot type (or all types if none specified)</font> |
75 pstack [-v] <font color="red">show mixed mode stack trace for all Java, non-Java threads. -v is verbose mode</font> | |
76 quit <font color="red">quit CLHSDB tool</font> | |
77 reattach <font color="red">detach and re-attach SA to current target</font> | |
6972
bd7a7ce2e264
6830717: replay of compilations would help with debugging
minqi
parents:
6725
diff
changeset
|
78 revptrs <font color="red">find liveness of oops</font> |
0 | 79 scanoops start end [ type ] <font color="red">scan a Oop from given start to end address</font> |
80 search [ heap | codecache | threads ] value <font color="red">search a value in heap or codecache or threads</font> | |
81 source filename <font color="red">load and execute CLHSDB commands from given file</font> | |
82 symbol name <font color="red">show address of a given ELF/COFF symbol</font> | |
83 sysprops <font color="red">show all Java System properties</font> | |
6972
bd7a7ce2e264
6830717: replay of compilations would help with debugging
minqi
parents:
6725
diff
changeset
|
84 thread id <font color="red">show thread of id</font> |
0 | 85 threads <font color="red">show all Java threads</font> |
86 tokenize ... | |
87 type [ type [ name super isOop isInteger isUnsigned size ] ] <font color="red">show info. on HotSpot type</font> | |
88 universe <font color="red">print gc universe</font> | |
6972
bd7a7ce2e264
6830717: replay of compilations would help with debugging
minqi
parents:
6725
diff
changeset
|
89 vmstructsdump <font color="red">dump hotspot type library in text</font> |
0 | 90 verbose true | false <font color="red">turn on/off verbose mode</font> |
91 versioncheck [ true | false ] <font color="red">turn on/off debuggee VM version check</font> | |
92 whatis address <font color="red">print info about any arbitrary address</font> | |
93 where { -a | id } <font color="red">print Java stack trace of given Java thread or all Java threads (-a)</font> | |
94 </code> | |
95 </pre> | |
96 | |
97 <h3>JavaScript integration</h3> | |
98 | |
10197
7b23cb975cf2
8011675: adding compilation level to replay data
iignatyev
parents:
6972
diff
changeset
|
99 <p>Few CLHSDB commands are already implemented in JavaScript. It is possible to extend CLHSDB command set |
0 | 100 by implementing more commands in a JavaScript file and by loading it by <b>jsload</b> command. <b>jseval</b> |
101 command may be used to evaluate arbitrary JavaScript expression from a string. Any JavaScript function | |
102 may be exposed as a CLHSDB command by registering it using JavaScript <b><code>registerCommand</code></b> | |
10197
7b23cb975cf2
8011675: adding compilation level to replay data
iignatyev
parents:
6972
diff
changeset
|
103 function. This function accepts command name, usage and name of the JavaScript implementation function |
0 | 104 as arguments. |
105 </p> | |
106 | |
107 <h3>Simple CLHSDB command implemented in JavaScript</h3> | |
108 | |
109 <b>File: test.js</b> | |
110 <pre> | |
111 <code> | |
112 function helloImpl(name) { | |
113 println("hello, " + name); | |
114 } | |
115 | |
116 // register the above JavaScript function as CLHSDB command | |
117 registerCommand("hello", "hello name", "helloImpl"); | |
118 </code> | |
119 </pre> | |
120 ---------<br> | |
121 | |
122 "test.js" can be loaded in CLHSDB prompt using <b>jsload</b> command using | |
123 | |
124 <pre> | |
125 <code> | |
126 hsdb> jsload test.js | |
127 </code> | |
128 </pre> | |
129 | |
10197
7b23cb975cf2
8011675: adding compilation level to replay data
iignatyev
parents:
6972
diff
changeset
|
130 <h3>Compilation Replay</h3> |
6972
bd7a7ce2e264
6830717: replay of compilations would help with debugging
minqi
parents:
6725
diff
changeset
|
131 <p> |
bd7a7ce2e264
6830717: replay of compilations would help with debugging
minqi
parents:
6725
diff
changeset
|
132 When a java process crashes in compiled method, usually a core file is saved. |
10197
7b23cb975cf2
8011675: adding compilation level to replay data
iignatyev
parents:
6972
diff
changeset
|
133 The replay function can reproduce the compiling process in the core. |
7b23cb975cf2
8011675: adding compilation level to replay data
iignatyev
parents:
6972
diff
changeset
|
134 <a href="cireplay.html">cireplay.html</a> |
6972
bd7a7ce2e264
6830717: replay of compilations would help with debugging
minqi
parents:
6725
diff
changeset
|
135 |
0 | 136 </body> |
137 </html> |