Command geninfo搜索.da而不是.gcda

Command geninfo搜索.da而不是.gcda,command,code-coverage,putty,plink,lcov,Command,Code Coverage,Putty,Plink,Lcov,当我试图通过Plink执行以下lcov命令时(我给Plink一个文本文件作为包含以下命令的参数) 结果是 GNU gcov版本1.5从中捕获覆盖率数据。 扫描。对于.da文件…gcov[-b][v][n][l][f][o OBJDIR]文件geninfo:在模式匹配中使用未初始化值 (m//)位于/home/myUser/lcov/lcov/usr/bin/geninfo第1874行。gcov[-b] [-v][n][l][f][o OBJDIR]文件geninfo:使用未初始化的 在/home

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

结果是

GNU gcov版本1.5从中捕获覆盖率数据。 扫描。对于.da文件…gcov[-b][v][n][l][f][o OBJDIR]文件geninfo:在模式匹配中使用未初始化值 (m//)位于/home/myUser/lcov/lcov/usr/bin/geninfo第1874行。gcov[-b] [-v][n][l][f][o OBJDIR]文件geninfo:使用未初始化的 在/home/myUser/lcov/lcov/usr/bin/geninfo中的模式匹配值(m/) 第3622行。geninfo:在模式匹配中使用未初始化的值(m/) 在/home/myUser/lcov/lcov/usr/bin/geninfo第3622行。 geninfo:错误:在中找不到.da文件

geninfo似乎希望使用.da文件而不是.gcda文件。 当我在没有Plink的情况下执行相同的命令时(在相同的CWD中),lcov运行良好并生成有效的.info文件。当我通过油灰手动执行时,它也运行良好


原因可能是什么?

问题更为普遍。Plink使用不同的环境变量。解决方案是手动设置正确的环境变量。在我的例子中,我运行perl脚本,因此在文件的开头添加了:

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

缺少的环境变量导致代码获取错误的gcov版本,因此检查了.da文件,而不是属于较新lcov版本的.gcda文件

将lcov版本升级到最新版本解决了此问题。旧版本的lcov Searchs.da而不是.gcda。更新到最新版本1.13解决了这个问题

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