代码之家  ›  专栏  ›  技术社区  ›  helpermethod

ValgND在C++开发中的应用?

  •  5
  • helpermethod  · 技术社区  · 15 年前

    对于C++,我很新,但有一些基本的C知识。在我过去的C(大学)项目中,我使用Valgrind检查memleaks。

    现在,用C++,ValgRink是一个有效的工具吗?C++是否也会遇到与C一样的内存泄漏问题?或者还有更好的工具可以与C++结合使用?

    7 回复  |  直到 15 年前
        1
  •  8
  •   Konrad Rudolph    15 年前

    我从不使用 new delete (或者其他形式的手动内存管理)我甚至很少使用指针。而我 仍然 内存泄漏 无效的内存访问。 1个 瓦尔格林是我不可或缺的工具。甚至比 gdb


    1个 正如Viktor在评论中指出的那样,在没有手动内存管理的情况下产生内存泄漏是非常奇怪的(不考虑循环引用和其他特殊情况)。

        2
  •  4
  •   Koteswara sarma    15 年前

    valgrind有很多选项可以给你提供信息,你也可以探索callgrind。

    --干杯

        3
  •  4
  •   David Thornley    15 年前

    虽然C++比C有更好的内存处理,但仍然有可能使它混乱。聪明的指针很好,但也有可能会出错。这就是valgrind的目的。

        4
  •  2
  •   Sam Miller    15 年前

    作为一个C++开发人员,内存泄漏是我自己关心的问题。我想他们也是其他开发人员关心的问题,尽管我不能代表所有人。瓦尔格林是这个领域的一个极好的工具,我真的不能没有它。

        5
  •  2
  •   pm100    15 年前

    记住告诉gcc运行时不要使用自己的私有内存池,否则会混淆valgrind

        6
  •  1
  •   Å imon Tóth    15 年前

    Valgrind是处理内存错误的最好工具(但是要检查memcheck旁边的其他模块)。

    C风格编程是C++中一种有效的(广泛使用的)编程方法,因此,内存问题仍然是个问题。

        7
  •  1
  •   justin    15 年前

    默认情况下,我在单元测试中使用动态分配(使用自动指针或惯用的等效方法)来显式检查valgrind可能检测到的额外内存错误。valgrind、guardmalloc、leaks等可以在输入生产代码之前捕获许多错误。