C++ 有没有办法重用文件?

C++ 有没有办法重用文件?,c++,valgrind,suppression,C++,Valgrind,Suppression,在我的工作中,我需要配置一些软件,并得到一些未知时间前录制的抑制文件。其中一个文件(logging.supp)用于抑制日志错误 我想在生成抑制文件和分析文件之间,日志记录和其他一些部分会发生变化 据我所知,valgrind使用堆栈来确定是否应该抑制泄漏 我是否需要重新生成抑制文件,或者是否有方法更改文件中的某些内容 抑制项示例: { <insert_a_suppression_name_here> Memcheck:Leak fun:_Znwj fun:_ZN3tsd6common5

在我的工作中,我需要配置一些软件,并得到一些未知时间前录制的抑制文件。其中一个文件(logging.supp)用于抑制日志错误

我想在生成抑制文件和分析文件之间,日志记录和其他一些部分会发生变化

据我所知,valgrind使用堆栈来确定是否应该抑制泄漏

我是否需要重新生成抑制文件,或者是否有方法更改文件中的某些内容

抑制项示例:

{
<insert_a_suppression_name_here>
Memcheck:Leak
fun:_Znwj
fun:_ZN3tsd6common5types8SmartPtrINS0_7logging19LogSimpleDateFormatEEaSEPS4_
fun:_ZN3tsd6common7logging23LogDatePatternConverterC1ESt6vectorISsSaISsEE
fun:_ZN3tsd6common7logging16LogPatternParser15createConverterEcSt6vectorISsSaISsEE
fun:_ZN3tsd6common7logging16LogPatternParser17finalizeConverterEcSsiSsNS0_5types8SmartPtrINS1_17LogFormattingInfoEEERSt6vectorINS4_INS1_19LogPatternConverterEEESaIS9_EERS7_IS6_SaIS6_EE
fun:_ZN3tsd6common7logging16LogPatternParser5parseESsRSt6vectorINS0_5types8SmartPtrINS1_19LogPatternConverterEEESaIS7_EERS3_INS5_INS1_17LogFormattingInfoEEESaISC_EE
fun:_ZN3tsd6common7logging16PatternLogLayout15activateOptionsEv
fun:_ZN3tsd6common7logging16PatternLogLayoutC1ERKSs
fun:_ZN3tsd6common7logging14LoggingManager4initENS0_5types8SmartPtrINS1_23LogManagerConfigurationEEE
fun:_ZN3tsd6common7logging14LoggingManager4initERKSsS4_
fun:_ZN3tsd6common7logging14LoggingManager9getLoggerERKSs
fun:_ZN3tsd6common7logging6LoggerC1ERKSs
}
{
Memcheck:泄漏
乐趣:_Znwj
乐趣:_zn3tsd6常见类型8智能打印机0_7记录19日志简化格式4_
乐趣:_zn3tsd6常见7记录23日志日期模式转换器1测试6矢量赛
乐趣:_zn3tsd6通用7日志16日志模式解析15创建转换器CST6矢量赛
有趣的是:常见的日志模式解析器最终确定转换类型智能PTRINS1日志格式信息EERS6矢量4在日志模式转换器中
乐趣:_zn3tsd6通用日志16日志模式解析器5解析器6矢量0_5类型8智能PTrins1_19日志模式转换器查看7_EERS3_INS5_17日志格式信息查看
乐趣:_zn3tsd6通用7日志16模式日志布局15激活选项sev
乐趣:_zn3tsd6通用7日志16模式日志布局
乐趣:_zn3tsd6通用7日志14日志管理器4初始化类型8智能PTrins1_23日志管理器配置EEE
乐趣:_zn3tsd6通用7日志14日志管理器初始化KSSS4_
乐趣:_zn3tsd6common7logging14loggingmanager9getloggerorks
乐趣:ZN3tsd6common7logging6LoggerC1ERKSs
}
我发现并喜欢这个答案:

我是否可以使用点来忽略一些作为中间堆栈项的函数

函数名是如何生成的?在我看来,要么_Znjw要么_ZN3tsd是main的名字

你能帮我在哪里找到上述问题的文档吗

我是否可以使用点来忽略一些作为中间堆栈项的函数

函数名是如何生成的

它们是由编译器生成的损坏的函数名;它们包含名称空间和/或类范围、函数名和参数。您可以使用
c++filt
对其进行demangle

在我看来,要么_Znjw要么_ZN3tsd是main的名字

\u Znjw
运算符新的(未签名)
\u ZN3tsd
名称空间tsd
中事物的前缀

你能帮我在哪里找到上述问题的文档吗

Valgrind抑制文件已记录在案。GNU混乱的格式似乎没有正式的文档记录;使用谷歌,找到什么就拿什么(假设你不想浏览编译器源代码来查看名称是如何生成的)