📄 jvm.jcov.txt
字号:
version : @(#)jvm.jcov.txt 1.2 01/07/13 JCOV support in JDK1.3 and laterUp to JDK1.2.x Jcov runtime support has been an integral part of thedebug version of the Javasoft's JVM, therefore it could not work withany other JVMs. In JDK1.3 all Jcov support was isolated in a separatelibrary and implemented basing upon the Java Virtual Machine ProfilerInterface (JVMPI), so it theoretically can work with any JVM thatsupport JVMPI. This library is loaded by a JVM at its startup, if the-Xrunjcov option is specified. For more information about how JVM findsand loads libraries passed via the -Xrun<libname> JVM's option, pleaseconsult JVMPI docs.usage:java [other java options] -Xrunjcov[:][help]|[<option>=<value>, ...] classnamewhere <option> is the name of an option, <value> is its value. Therecognized command-line options are :include(i)=<class name prefix> makes Jcov profile only those classes whose names begin with given class name prefix. This option may be specified multiple times - in this case class name must satisfy at least one of the class name prefixes to be profiled.exclude(e)=<class name prefix> tells Jcov not to profile classes whose names begin with given class name prefix. This option may be given multiple times - if a class name satisfies at least one of the class name prefixes then it will not be profiled.type(t)=<value> value can be either B or M. Sets jcov data gathering mode : in B mode method/block/branch coverage data is gathered, in M only method coverage data is gathered. Default value is B.file(f)=<filename> specifies savefile name, default - java.jcov.caller_include(ci)=<class name prefix> gather coverage data only for methods invoked from the specified class or classes beloning to the specified package; the option can be used multiple times; class or package names should use '.' as a package separatorcaller_exclude(ce)=<class name prefix> gather coverage data only for methods invoked *not* from the specified class or classes *not* beloning to the specified package; the option can be used multiple times; class or package names should use '.' as a package separatorabstract_methods(am)=<on|off> store/do not store jcov data for abstract methods; default is 'off'overwrite(o)=<on|off> overwrite jcov data file; default is 'off' (jcov data is merged)options_file(of)=<filename> specifies where to read options from; (caller_)include/(caller_)exclude options values read from the file are added to those, specified in the command lineExample 1.(JDK 1.3.0 ): N/A(JDK 1.3.1 - 1.4.0 only) > java -XX:+EnableJVMPIInstructionStartEvent -Xrunjcov <class>This command will make Jcov profile all loaded classes which have theCoverageTable class attribute (i.e. all loaded classes which had beencompiled with the -Xjcov compiler option) and save method/block/branchcoverage data to a file named java.jcov in current directory.Example 2.(JDK 1.4.0 only, in earlier JDKs full option names must be used) > java -Xrunjcov:i=java,e=java.lang,e=java.io,type=M,file=/tmp/sys.jcov <class>This command will make Jcov profile all classes from the java packageand its subpackages except java.lang and java.io, only method coveragestatistics will be gathered and saved to a file named sys.jcov' in the/tmp directory.Notes: 1.JVM must not be run in debug mode (-Xdebug option must not be specified), since Jcov cannot work correctly in this JVM's mode. 2.When gathered data is saved to an existing Jcov data file, then it is merged (on per-class basis) with the corresponding data found in the file. If the data types of two classes being merged don't match, then both classes are saved in the resulting jcov data file. 3.(JDK 1.2.x and earlier) For Jcov to work correctly any JIT compiler must be turned off (for example, by specifying the -Djava.compiler=NONE JVM's option) 4.If a class or an interface contains only abstract methods then it will not be profiled at all (i.e. no code coverage data will be gathered for it). 5.Only non-abstract methods are profiled. 6.If data gathering mode is set to B then those classes, having no CoverageTable or CharacterRangeTable class attribute, will not be profiled. 7.For Jcov to be able to gather block/branch coverage data for a certain class, this class must have CoverageTable class attribute. This can be achived by compiling this class with the -prof=jcov (JDK1.1 - JDK 1.1.x) option or the -Xjcov (JDK1.2 - JDK 1.2.x, JDK 1.4) option. With JDK 1.3.0-1.3.1 'oldjavac -Xjcov' command should be used. 8.-XX:+EnableJVMPIInstructionStartEvent JVM option has to be specified in JDK
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -