对可执行文件使用的共享对象使用gcov
我正在尝试为我的项目生成覆盖率报告。共享对象代码文件的.gcno文件按预期生成,但当我运行可执行文件(使用生成的共享对象)时,.so也与可执行文件位于同一位置,但共享对象的.gcda文件未生成,而可执行代码的.gcda文件按预期生成。 方法有问题吗?对可执行文件使用的共享对象使用gcov,gcov,Gcov,我正在尝试为我的项目生成覆盖率报告。共享对象代码文件的.gcno文件按预期生成,但当我运行可执行文件(使用生成的共享对象)时,.so也与可执行文件位于同一位置,但共享对象的.gcda文件未生成,而可执行代码的.gcda文件按预期生成。 方法有问题吗? 请告知有可能获得共享图书馆的保险范围。 我尝试了使用gcov和共享库概念进行简单的hello应用程序评测,我能够获得代码覆盖率。 让我们看两个文件hello.c和extlib.c 首先编译extlib.c #include <stdio.h&
请告知有可能获得共享图书馆的保险范围。 我尝试了使用gcov和共享库概念进行简单的hello应用程序评测,我能够获得代码覆盖率。 让我们看两个文件hello.c和extlib.c 首先编译extlib.c
#include <stdio.h>
extern void print(const char* p, ...);
void print(const char* p, ...) {
printf("%s World!\n", p);
gcc hello.c-L./-lextlib-o测试-ftest覆盖率-fprofile弧
在这个hello.gcno文件之后。
执行/test
执行后将获得extlib.gcda和hello.gcda
使用gcov*.c
可以检查覆盖范围
因此,我的建议是在您的项目中尝试使用gcov profiling单独编译一些简单的文件。我有gcc 4.1工具链的可能副本,它是否受上面参考gcc 4.5共享的4.1链接的支持?您能否提供编译位置和可执行文件运行位置的详细信息,i、 你是否在你构建的同一个地方运行你的可执行文件?是的,我的可执行文件在我构建的同一个地方,所以(可执行文件使用的)存在于同一个目录(作为exec)[我构建的同一个地方]
int main() {
print("Hello");
}