在执行一个java命令后,如何获得Hotspot的代码覆盖率?
我想在OpenJDK中获得Hotspot JVM的代码覆盖率,所以我准备如下:在执行一个java命令后,如何获得Hotspot的代码覆盖率?,java,code-coverage,gcov,hotspot,lcov,Java,Code Coverage,Gcov,Hotspot,Lcov,我想在OpenJDK中获得Hotspot JVM的代码覆盖率,所以我准备如下: 按照前面提到的步骤构建一个 bash configure--with boot jdk=$my_path_to_boot_jdk1--enable native coverage--disable warning as errors 制作图像 在make之后,我检查了/build/*/images/jdk/bin/java-version是否有效,因此我完成了代码覆盖率的OpenJDK构建 我注意到我只需要Open
bash configure--with boot jdk=$my_path_to_boot_jdk1--enable native coverage--disable warning as errors
制作图像
在make
之后,我检查了/build/*/images/jdk/bin/java-version
是否有效,因此我完成了代码覆盖率的OpenJDK构建
hotspot/variant server/libjvm/objs中的.gcno
文件,并删除了其他dir中的.gcno
文件
lcov
在运行java命令之前和之后获得覆盖率,例如java-version
#/bin/zsh
#设置一些变量
projectDir='hotspot-openjdk-jdk11/'
srcDir=“$projectDir”'src/'
javaApp=“$projectDir”'build/linux-x86_64-normal-server-release/images/jdk/bin/java'
#a)重置计数器
lcov-z-d“$projectDir”
#b)创建基线覆盖率数据文件
lcov-c-i-d“$projectDir”-b“$srcDir”-o base.info--忽略错误图
#在jdk中运行应用程序,例如“java-version”`
$javaApp-版本
#c)将当前覆盖率状态捕获到文件
lcov-c-d“$projectDir”-b“$srcDir”-o test.info--忽略错误图
#d)结合基线和测试覆盖率数据
lcov-a base.info-a test.info-o coverage.info
我的问题是:
gcov
和lcov
来收集代码覆盖率.gcno
文件的方法正确吗?也就是说,简单地删除.gcno
文件是否有效