Mercurial > hg > graal-jvmci-8
comparison mx/mx_graal.py @ 16167:1f4955abca9b
mx: add jol command for java object layout introspection
author | Andreas Woess <andreas.woess@jku.at> |
---|---|
date | Fri, 20 Jun 2014 13:43:47 +0200 |
parents | 3b4690ddd92e |
children | 6140fd60abe9 |
comparison
equal
deleted
inserted
replaced
16166:d69ede72299a | 16167:1f4955abca9b |
---|---|
1856 vmArgs, slArgs = _extract_VM_args(args) | 1856 vmArgs, slArgs = _extract_VM_args(args) |
1857 vm(vmArgs + ['-cp', mx.classpath("com.oracle.truffle.sl"), "com.oracle.truffle.sl.SLMain"] + slArgs) | 1857 vm(vmArgs + ['-cp', mx.classpath("com.oracle.truffle.sl"), "com.oracle.truffle.sl.SLMain"] + slArgs) |
1858 | 1858 |
1859 def isGraalEnabled(vm): | 1859 def isGraalEnabled(vm): |
1860 return vm != 'original' and not vm.endswith('nograal') | 1860 return vm != 'original' and not vm.endswith('nograal') |
1861 | |
1862 def jol(args): | |
1863 """Java Object Layout""" | |
1864 jolurl = "http://lafo.ssw.uni-linz.ac.at/truffle/jol/jol-internals.jar" | |
1865 joljar = "lib/jol-internals.jar" | |
1866 if not exists(joljar): | |
1867 mx.download(joljar, [jolurl]) | |
1868 | |
1869 candidates = mx.findclass(args, logToConsole=False, matcher=lambda s, classname: s == classname or classname.endswith('.' + s) or classname.endswith('$' + s)) | |
1870 if len(candidates) > 10: | |
1871 print "Found %d candidates. Please be more precise." % (len(candidates)) | |
1872 return | |
1873 | |
1874 vm(['-javaagent:' + joljar, '-cp', os.pathsep.join([mx.classpath(), joljar]), "org.openjdk.jol.MainObjectInternals"] + candidates) | |
1861 | 1875 |
1862 def site(args): | 1876 def site(args): |
1863 """create a website containing javadoc and the project dependency graph""" | 1877 """create a website containing javadoc and the project dependency graph""" |
1864 | 1878 |
1865 return mx.site(['--name', 'Graal', | 1879 return mx.site(['--name', 'Graal', |
2083 'vm': [vm, '[-options] class [args...]'], | 2097 'vm': [vm, '[-options] class [args...]'], |
2084 'vmg': [vmg, '[-options] class [args...]'], | 2098 'vmg': [vmg, '[-options] class [args...]'], |
2085 'vmfg': [vmfg, '[-options] class [args...]'], | 2099 'vmfg': [vmfg, '[-options] class [args...]'], |
2086 'deoptalot' : [deoptalot, '[n]'], | 2100 'deoptalot' : [deoptalot, '[n]'], |
2087 'longtests' : [longtests, ''], | 2101 'longtests' : [longtests, ''], |
2088 'sl' : [sl, '[SL args|@VM options]'] | 2102 'sl' : [sl, '[SL args|@VM options]'], |
2103 'jol' : [jol, ''], | |
2089 } | 2104 } |
2090 | 2105 |
2091 mx.add_argument('--jacoco', help='instruments com.oracle.* classes using JaCoCo', default='off', choices=['off', 'on', 'append']) | 2106 mx.add_argument('--jacoco', help='instruments com.oracle.* classes using JaCoCo', default='off', choices=['off', 'on', 'append']) |
2092 mx.add_argument('--vmcwd', dest='vm_cwd', help='current directory will be changed to <path> before the VM is executed', default=None, metavar='<path>') | 2107 mx.add_argument('--vmcwd', dest='vm_cwd', help='current directory will be changed to <path> before the VM is executed', default=None, metavar='<path>') |
2093 mx.add_argument('--installed-jdks', help='the base directory in which the JDKs cloned from $JAVA_HOME exist. ' + | 2108 mx.add_argument('--installed-jdks', help='the base directory in which the JDKs cloned from $JAVA_HOME exist. ' + |