在我的工作中,我需要分析一些软件并获得一些未知时间前记录的抑制文件。这些文件之一 (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
}
我发现并喜欢这个答案:
https://stackoverflow.com/a/14781867/2764334
我也可以使用这些点来忽略一些作为中间堆栈条目的函数吗?
函数名是如何生成的?在我看来,_Znjw 或 _ZN3tsd 是 main 的名称吗?
你能帮我在哪里找到上述问题的文档吗?