C++ 如何使用c++;是否使用llvm cov报告过滤?
我正在尝试将demangler与llvm cov报告工具结合使用。以下是我正在运行的命令:C++ 如何使用c++;是否使用llvm cov报告过滤?,c++,llvm,code-coverage,llvm-cov,C++,Llvm,Code Coverage,Llvm Cov,我正在尝试将demangler与llvm cov报告工具结合使用。以下是我正在运行的命令: llvm-cov report /path/to/executable -instr-profile /path/to/default.profdata /path/to/src/ -Xdemangler c++filt -Xdemangler -n 我尝试重新排列选项,并尝试使用“-Xdemangler=c++filt-Xdemangler=-n”,以及使用--no strip下划线代替-n。它不会抱
llvm-cov report /path/to/executable -instr-profile /path/to/default.profdata /path/to/src/ -Xdemangler c++filt -Xdemangler -n
我尝试重新排列选项,并尝试使用“-Xdemangler=c++filt-Xdemangler=-n”,以及使用--no strip下划线代替-n。它不会抱怨demangler,但是如果我在命令语法上犯了明显的错误,它会告诉我,但是输出不是demangled
从llvm cov文档中:
-Xdemangler=c++filt -n _ZN4core6ZipperC2ENSt3__110shared_ptrIN8core_gen14PlatformZipperEEE
输出:
core::Zipper::Zipper(std::__1::shared_ptr<core_gen::PlatformZipper>)
core::zippers::zippers(std:_1::shared_ptr)
我必须使用-n选项,否则它将不会demangle,但我不知道为什么llvm cov似乎没有正确使用它
我还尝试使用一个shell脚本来捕获llvmcov提供给demangler的输入,并在调用c++filt之前将其写入一个文件,但在运行该命令后,该文件是空的
我做错什么了吗?看来,在llvm cov中,demangled函数名的使用并不是无处不在的 此报告(生成函数名需要
-name regex
选项)确实响应-Xdemangler
选项:
llvm-cov report /path/to/exe -name-regex=\.* -instr-profile=default.profdata -Xdemangler=c++filt
我看到它在中被修复了,你知道那个补丁是什么时候被合并到一个版本中的吗?Ubuntu 17.04上的
llvm-cov-4.0
仍然存在此问题。此修复是在4.0的分支完成后提交的。我预计它将出现在下一个LLVM版本(5.0)中。