我有以下 AOSP 项目设置
1)我在(AOSP根目录)/vendor/myProject/test.cpp中有test.cpp
2) 在 Android.mk 中,我使用了 LOCAL_CFLAGS += -g -fprofile-arcs -ftest-coverage LOCAL_LDFLAGS += -lgcov
3)当我编译代码时,我得到 test.gcno 在:(AOSP 根目录)/out/target/product/generic/obj/EXECUTABLES/myProject_intermediates
4)然后我在设备上进行测试(adb sync)
5)然后在设备上我使用了以下内容: export GCOV_PREFIX=/vendor
export GCOV_PREFIX_STRIP=13 (去除不必要的路径)
6)我运行测试 ./system/bin/test 并在设备(shell)/vendor/test.gcda 上获得 test.gcda 文件
7)我将 test.gcda(从设备)复制到我已经有 test.gcno 的构建目录(/out/target/product/generic/obj/EXECUTABLES/myProject_intermediates)
8)现在我在 /out/target/product/generic/obj/EXECUTABLES/myProject_intermediates 然后运行 gcov 如下:
(AOSP根目录)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcov test
为此,我得到如下输出:
文件 'vendor/myProject/test.cpp' 执行的行数:23.00% of 223
供应商/myProject/test.cpp:创建“test.cpp.gcov”
vendor/myProject/test.cpp: 无法打开源文件
任何人都可以帮助我解决这个问题。它说test.cpp:cannot open source file gcov 没有生成完整的报告。我还通过指定源路径来检查 -b 选项,如下所示:
(AOSP根目录)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcov -b (AOSP根目录)/vendor/myProject test
它没有用。
我猜这个问题是因为不同目录中的分布式文件(gcno,gcda,test.cpp)。
谢谢