本文介绍了如何将C++过滤器与llvm-cov报告一起使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用带有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-strial-Underline而不是-n。它不会抱怨去角度分析器,而如果我在命令语法上犯了一个明显的错误,它会告诉我,但输出没有去角度。
来自llvm-cov文档:
-Xdemangler=<;工具>|<;工具-选项> 指定符号拆分器。这可以用来使报告更具人类可读性。可以多次指定该选项以向解析器提供参数(例如,对于C++,则为-Xdemangler c++filt-Xdemangler-n)。反命令分析器应从标准输入中读取换行符分隔的符号列表,并将相同长度的换行符分隔列表写入标准输出。
我使用了以下方法来确保c++筛选器正常工作,并且确实有效:
c++filt -n _ZN4core6ZipperC2ENSt3__110shared_ptrIN8core_gen14PlatformZipperEEE
输出:
core::Zipper::Zipper(std::__1::shared_ptr<core_gen::PlatformZipper>)
我必须使用-n选项,否则它不会被删除,但我不知道为什么llvm-cov似乎没有正确使用它。
在调用c++筛选器之前,我还尝试使用外壳脚本尝试捕获提供给解析器的输入llvm-cov,并将其写入文件,但在运行命令后查看该文件时,该文件为空。
我做错了什么吗?
推荐答案
似乎在llvm-cov中并不是到处都在使用脱离角度的函数名称。
此报表(需要-name-regex
选项才能生成函数名称)确实响应-Xdemangler
选项:
llvm-cov report /path/to/exe -name-regex=.* -instr-profile=default.profdata -Xdemangler=c++filt
我看到它已在https://reviews.llvm.org/rL294136
中修复这篇关于如何将C++过滤器与llvm-cov报告一起使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!