2017-09-07 10 views
0

私はMnCソフトウェア会社で働いています。私の仕事は、ソフトウェアのメモリリークを修正することです。私はvalgrind memcheckツールを使用しています。私は 'valgrind --leak-check = yes --log-file = vg.log'を使用しました。私は、valgrindがvg.logで異なるサイズで同じメモリリークを複数回表示し、vg.logファイルに200万行があることを発見しました。その結果、どのリークが最大サイズであるかを特定することはできません。どちらが最大のリークかを意味します。この問題を解決する考えはありますか?私はvalgrindのval3.12.0バージョンを使用しています。同じサイズのメモリを持つvg.logで同じメモリリークが発生する必要があります。私はRed Hat Enterprise Linux Workstationリリース6.5を使用しています。valgrindはログファイルに同じメモリリークを複数回表示しています

+0

リークはリークですが、サイズにかかわらずすべてを固定する必要があります – dlmeetei

答えて

0

実際、valgrindには--num-callersオプションがあります。このオプションは、類似したメモリリークを異なるクラブに使用することができます。

0

リークはサイズが大きくなる順にダンプされます。したがって、最後のリークが最大です。各リーク説明は

  • XXは、そのコールスタック
  • Bのリークの合計サイズである呼び出しスタックとの漏れがある回数である
    XX bytes in B blocks are definitely lost in loss record R of N 
    

    ようになります。例えば、合計コールが4回発生し、各リークが1024バイト

  • R漏れのランニングカウント
  • Nは、異なる漏れ呼び出しスタックの総数である
  • であることを意味4つのブロック内の4096バイトである場合
関連する問題