【发布时间】:2014-08-07 13:27:12
【问题描述】:
我正在尝试使用 gcov,因此我开始使用一些小型 c 类来测试它。 下面的类就是我用的example.c
#include <stdio.h>
int main(){
printf("Hello \n"); // I also tried without this printf
return 0;
}
这样编译后由于某种原因:
g++ -ftest-coverage -fprofile-arcs example.c -o test
当我尝试执行它时,执行永远不会返回 :-(
prompt> ./test
...
...
...
这个简单的 exe 永远不会从他的执行中返回,当我强制 ctrl + c 终止它时,*gcda 文件当然是空的。
有什么想法吗? 非常感谢。
【问题讨论】:
-
我试试就可以了
-
奇怪的是它可以在一台机器上运行,但是当我在另一台机器上尝试时,我遇到了这个问题:-S 我很困惑..这些机器应该是平等的
-
也许可以试试
strace ./test -
tksbirdspider.. 实际上由于某种原因它在 fcntl 上有一些问题: mprotect(0x7f577fd32000, 32768, PROT_READ) = 0 mprotect(0x602000, 4096, PROT_READ) = 0 mprotect(0x7f577ff6f000, 4096, PROT_READ) = 0 munmap(0x7f577ff14000, 366624) = 0 getpid() = 13273 open("/home/ex/example.gcda", O_RDWR|O_CREAT, 0666) = 3 fcntl(3, F_SETLKW, {type=F_WRLCK, wherece =SEEK_SET, start=0, len=0}
-
这可能有助于调查 - man7.org/linux/man-pages/man8/lslocks.8.html
标签: code-coverage gcov