How do you use c++filt with llvm-cov report?(如何将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报告一起使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何将C++过滤器与llvm-cov报告一起使用?
- 如何提取 __VA_ARGS__? 2022-01-01
- XML Schema 到 C++ 类 2022-01-01
- 将 hdc 内容复制到位图 2022-09-04
- 哪个更快:if (bool) 或 if(int)? 2022-01-01
- 从父 CMakeLists.txt 覆盖 CMake 中的默认选项(...)值 2021-01-01
- DoEvents 等效于 C++? 2021-01-01
- OpenGL 对象的 RAII 包装器 2021-01-01
- 将函数的返回值分配给引用 C++? 2022-01-01
- 使用 __stdcall & 调用 DLLVS2013 中的 GetProcAddress() 2021-01-01
- GDB 不显示函数名 2022-01-01