Mercurial > hg > graal-compiler
view agent/doc/clhsdb.html @ 1255:e3a4305c6bc3
6925249: assert(last_sp < (intptr_t*) interpreter_frame_monitor_begin(),"bad tos")
Summary: Fix assert since top deoptimized frame has last_sp == interpreter_frame_monitor_begin if there are no expressions.
Reviewed-by: twisti
author | kvn |
---|---|
date | Fri, 12 Feb 2010 08:54:13 -0800 |
parents | a61af66fc99e |
children | da91efe96a93 |
line wrap: on
line source
<html> <head> <title> Command line HSDB </title> </head> <body> <h1>Command line HSDB</h1> <p> When debugging remote core dumps it is easier to work with command line tools instead of GUI tools. Command line HSDB (CLHSDB) tool is alternative to SA GUI tool HSDB. </p> <p> There is also JavaScript based SA command line interface called <a href="jsdb.html">jsdb</a>. But, CLHSDB supports Unix shell-like (or dbx/gdb-like) command line interface with support for output redirection/appending (familiar >, >>), command history and so on. Each CLHSDB command can have zero or more arguments and optionally end with output redirection (or append) to a file. Commands may be stored in a file and run using <b>source</b> command. <b>help</b> command prints usage message for all supported commands (or a specific command) </p> <h3>Shell/batch scripts to run command line HSDB</h3> <ul> <li>clhsdbproc.sh <li>clhsdbproc64.sh <li>clhsdbwindbg.bat <li>clhsdbwindbg64.bat </ul> <h3>Annotated output of CLHSDB help command</h3> <pre> <code> Available commands: assert true | false <font color="red">turn on/off asserts in SA code</font> attach pid | exec core <font color="red">attach SA to a process or core</font> class name <font color="red">find a Java class from debuggee and print oop</font> classes <font color="red">print all loaded Java classes with klassOop</font> detach <font color="red">detach SA from current target</font> dis address [ length ] <font color="red">disassemble (sparc/x86) specified number of instructions from given address</font> dumpclass { address | name } [ directory ] <font color="red">dump .class file for given klassOop or class name</font> dumpheap [ file ] <font color="red">dump heap in hprof binary format</font> echo [ true | false ] <font color="red">turn on/off command echo mode</font> examine [ address/count ] | [ address,address] <font color="red">show contents of memory from given address</font> field [ type [ name fieldtype isStatic offset address ] ] <font color="red">print info about a field of HotSpot type</font> findpc address <font color="red">print info. about pointer location</font> flags [ flag ] <font color="red">show all -XX flag name value pairs. or just show given flag</font> help [ command ] <font color="red">print help message for all commands or just given command</font> history <font color="red">show command history. usual !command-number syntax works.</font> inspect expression <font color="red">inspect a given oop</font> jdis address <font color="red">show bytecode disassembly of a given methodOop</font> jhisto <font color="red">show Java heap histogram</font> jseval script <font color="red">evaluate a given string as JavaScript code</font> jsload file <font color="red">load and evaluate a JavaScript file</font> jstack [-v] <font color="red">show Java stack trace of all Java threads. -v is verbose mode</font> livenmethods <font color="red">show all live nmethods</font> mem address [ length ] <font color="red">show contents of memory -- also shows closest ELF/COFF symbol if found</font> pmap <font color="red">show Solaris pmap-like output</font> print expression <font color="red">print given klassOop, methodOop or arbitrary address</font> printas type expression <font color="red">print given address as given HotSpot type. eg. print JavaThread <address></font> printstatics [ type ] <font color="red">print static fields of given HotSpot type (or all types if none specified)</font> pstack [-v] <font color="red">show mixed mode stack trace for all Java, non-Java threads. -v is verbose mode</font> quit <font color="red">quit CLHSDB tool</font> reattach <font color="red">detach and re-attach SA to current target</font> scanoops start end [ type ] <font color="red">scan a Oop from given start to end address</font> search [ heap | codecache | threads ] value <font color="red">search a value in heap or codecache or threads</font> source filename <font color="red">load and execute CLHSDB commands from given file</font> symbol name <font color="red">show address of a given ELF/COFF symbol</font> sysprops <font color="red">show all Java System properties</font> threads <font color="red">show all Java threads</font> tokenize ... type [ type [ name super isOop isInteger isUnsigned size ] ] <font color="red">show info. on HotSpot type</font> universe <font color="red">print gc universe</font> verbose true | false <font color="red">turn on/off verbose mode</font> versioncheck [ true | false ] <font color="red">turn on/off debuggee VM version check</font> whatis address <font color="red">print info about any arbitrary address</font> where { -a | id } <font color="red">print Java stack trace of given Java thread or all Java threads (-a)</font> </code> </pre> <h3>JavaScript integration</h3> <p>Few CLHSDB commands are already implemented in JavaScript. It is possible to extend CLHSDB command set by implementing more commands in a JavaScript file and by loading it by <b>jsload</b> command. <b>jseval</b> command may be used to evaluate arbitrary JavaScript expression from a string. Any JavaScript function may be exposed as a CLHSDB command by registering it using JavaScript <b><code>registerCommand</code></b> function. This function accepts command name, usage and name of the JavaScript implementation function as arguments. </p> <h3>Simple CLHSDB command implemented in JavaScript</h3> <b>File: test.js</b> <pre> <code> function helloImpl(name) { println("hello, " + name); } // register the above JavaScript function as CLHSDB command registerCommand("hello", "hello name", "helloImpl"); </code> </pre> ---------<br> "test.js" can be loaded in CLHSDB prompt using <b>jsload</b> command using <pre> <code> hsdb> jsload test.js </code> </pre> </body> </html>