C++ Windows与CppCheck的等价物是什么?

C++ Windows与CppCheck的等价物是什么?,c++,memory-leaks,cppcheck,C++,Memory Leaks,Cppcheck,我有一个极端的问题 我已经为一款游戏工作了大约两年(20000多行代码),最近我注意到大量内存泄漏。问题是我不能追踪每一个,因为我的比赛太大了 我四处搜索,发现CppCheck在我的情况下很有用,但问题是因为我使用的是windows,所以我不能使用CppCheck(它只适用于linux) 我想知道是否有一个库或插件是CppCheck在windows上的等价物,或者是一种在windows上使用CppCheck的方法 我所想到的所有可能性,以及其他问题的解决方案(例如对std::deque等使用智能

我有一个极端的问题

我已经为一款游戏工作了大约两年(20000多行代码),最近我注意到大量内存泄漏。问题是我不能追踪每一个,因为我的比赛太大了

我四处搜索,发现CppCheck在我的情况下很有用,但问题是因为我使用的是windows,所以我不能使用CppCheck(它只适用于linux)

我想知道是否有一个库或插件是CppCheck在windows上的等价物,或者是一种在windows上使用CppCheck的方法

我所想到的所有可能性,以及其他问题的解决方案(例如对std::deque等使用智能指针)都意味着我的程序很小或更合适:重写我的整个程序,这是我真的不想做的

IDE:代码块10.05


编译器:MinGW 3.81 GCC 4.4.1

CppCheck也可以在Windows上工作(查看SourceForge上的下载)。CppCheck只是一个静态检查工具(它分析您的源代码以发现一些潜在的问题)。为了找到真正的内存泄漏,可能需要使用一些实际运行代码的调试工具(例如谷歌的)。

这就是为什么要从智能指针开始,不要从原始指针开始,在你的程序有20000行代码后发现你需要智能指针。@Molma:像这样的工具的问题是它不是很精确——它可能能够捕捉到一些内存泄漏,但它不太可能捕捉到所有的内存泄漏。我建议的是另一种方法:开始注释代码中哪些指针拥有内存,哪些指针仅仅引用内存。如果有循环引用,请特别注意循环引用。然后,一个接一个地开始使用
shared_ptr
,并使用
release
转换为(拥有)指针,以保持程序的可编译性。不断重复,直到消除泄漏或不再有原始指针为止。@SethCarnegie当我第一次开始处理这个项目时,我不知道智能指针或内存泄漏。直到最近,我才注意到我的程序出现了大量的漏洞(最近我一直致力于提高速度)。我把这个疯狂的错误归咎于我自己,因为我是自学成才的……另外请看@Molma,你需要做的是查找每个
新的
,并找到它在源代码中的位置和时间
删除
d。如果这真的是你的第一个项目,不期望随着你知识的增长重写大部分内容是不合理的。我目前正在Dr.Memory下运行我的程序,看看我是否能取得进展。