【问题标题】:generating suppressions for memory leaks为内存泄漏生成抑制
【发布时间】:2013-06-14 02:50:56
【问题描述】:

我想禁止 Valgrind 报告我正在使用的库对某些“肯定丢失”的内存的报告。我试过valgrind --gen-suppressions=yes ./a,但它只提示错误,例如“条件跳转或移动取决于未初始化的值”。

有没有办法为直接的内存泄漏生成抑制?如果没有,手写很难吗? Valgrind 的联机帮助页似乎不鼓励它,至少对于错误而言。

【问题讨论】:

    标签: valgrind error-suppression


    【解决方案1】:

    要提示未生成错误的泄漏,您必须运行

    valgrind --leak-check=full --gen-suppressions=yes ./a 
    

    【讨论】:

      【解决方案2】:

      你可以自己write a suppression file(但看起来并不明显):

      --suppressions=<filename> [default: $PREFIX/lib/valgrind/default.supp]
      

      如果问题是禁用整个库,请参阅this

      Valgrind 的 man page

      【讨论】:

      • --suppressions 选项是读取抑制文件所必需的,而不是写入
      【解决方案3】:

      使用 --gen-suppressions=all--log-file=memcheck.log 选项运行 valgrind,然后手动将记录的抑制复制/粘贴到抑制文件中。

      valgrind --leak-check=full --gen-suppressions=all --log-file=memcheck.log ./a 
      

      如果您发现输出与应用程序输出混合,则将 valigrind 输出重定向到单独的文件描述符:--log-fd=9 9&gt;&gt;memcheck.log

      valgrind --leak-check=full --gen-suppressions=all --log-fd=9 ./a  9>>memcheck.log
      

      【讨论】:

        【解决方案4】:

        有一个页面介绍了如何根据您的错误生成这样的文件https://wiki.wxwidgets.org/Valgrind_Suppression_File_Howto

        它并不完美,但你可以从它开始

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-28
          • 1970-01-01
          • 1970-01-01
          • 2023-02-10
          • 2011-07-31
          • 2013-12-29
          相关资源
          最近更新 更多