geninfo搜索.da而不是.gcda

时间:2014-05-11 08:54:19

标签: command code-coverage putty plink lcov

当我尝试通过Plink执行以下lcov命令时(我给Plink一个文本文件作为包含以下命令的参数)

lcov --capture --directory . --output-file coverage.info

结果
  

GNU gcov 1.5版从中捕获覆盖数据。   扫描。 for .da files ... gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] file geninfo:在模式匹配中使用未初始化的值   (m //)at / home / myUser / lcov / lcov / usr / bin / geninfo line 1874. gcov [-b]   [-v] [-n] [-l] [-f] [-o OBJDIR] file geninfo:未初始化的使用   模式匹配中的值(m //)/ home / myUser / lcov / lcov / usr / bin / geninfo   line 3622. geninfo:在模式匹配中使用未初始化的值(m //)   at / home / myUser / lcov / lcov / usr / bin / geninfo line 3622。    geninfo:错误:在。!

中找不到.da文件

似乎geninfo需要 .da 文件而不是 .gcda 文件。 当我在没有Plink的情况下执行相同的命令(在同一个CWD中)时,lcov运行正常,并生成一个有效的 .info 文件。当我手动执行PuTTY时,它也运行正常。

这可能是什么原因?

2 个答案:

答案 0 :(得分:1)

问题更为笼统。 Plink使用不同的环境变量。解决方案是手动设置正确的环境变量。在我的情况下,我运行perl脚本,所以我添加在文件的头部:

use Env;
$ENV{PATH} = "correct PATH variable";

缺少环境变量导致代码出错gcov版本,因此.da文件被分离而不是属于更新的lcov版本的.gcda文件

答案 1 :(得分:0)

将lcov版本升级到最新版本可以解决此问题。较早版本的lcov搜索.da而不是.gcda。更新到最新版本1.13可以解决此问题