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报告一起使用?
基础教程推荐
- 调用std::Package_TASK::Get_Future()时可能出现争用情况 2022-12-17
- 如何定义双括号/双迭代器运算符,类似于向量的向量? 2022-01-01
- 您如何将 CreateThread 用于属于类成员的函数? 2021-01-01
- C++ 程序在执行 std::string 分配时总是崩溃 2022-01-01
- C++ 标准:取消引用 NULL 指针以获取引用? 2021-01-01
- C++,'if' 表达式中的变量声明 2021-01-01
- 什么是T&&(双与号)在 C++11 中是什么意思? 2022-11-04
- 设计字符串本地化的最佳方法 2022-01-01
- 运算符重载的基本规则和习语是什么? 2022-10-31
- 如何在 C++ 中处理或避免堆栈溢出 2022-01-01