【发布时间】:2014-03-06 23:24:43
【问题描述】:
我有一个非常大的应用程序,有 20,000 多行,用 C 语言编写,在 MinGW 编译器上编译。应用程序在发布模式下编译时存在内存泄漏,但在调试模式下似乎没有泄漏。我创建了一个运行计数器,以确保我有与 malloc() calloc() 调用一样多的 free() 调用。
显然我的代码库太大而无法在此处发布,所以我的问题是在调试和发布之间进行编译时会出现什么样的差异,这些差异会导致我可能想要调查的内存泄漏问题?
非常感谢!
【问题讨论】:
-
为什么不直接在合适的泄漏工具下运行它,比如 valgrind ?这应该让你直接解决问题。
-
我正在尝试 DrMemory
-
您真的是指“内存泄漏”吗?换句话说,您可以看到堆随着您继续运行程序而增长,因为在“生产”模式下没有释放块?还是您的意思是“任何内存访问错误”-在调试模式下运行时会消失的段错误?后者比形成的更容易解释......你提到你会尝试 DrMemory。你成功了吗?
标签: c memory-leaks