2

私のプログラムは最終的にすべての RAM を消費してクラッシュします... コードを調べてみると、これを実行するような目立ったものは見つかりません。

4

3 に答える 3

1

リークの種類に応じて、umdh または debugdiag を単純なツールとして使用できます。それ以外の場合は、windbg をお勧めします。これらはすべて無料で、Windows 用のデバッグ ツールの一部です。Google でこれらすべてのツールのチュートリアルを検索できます。windbg での自動リーク検出のコマンドは !heap -l です。

于 2012-05-16T20:54:53.453 に答える
1

mallocとのデバッグ バージョンを使用するようにコードを変更していただけますfreeか? はいの場合は、_malloc_dbg_free_dbgを確認してください。

(これらの関数に基づいて独自の演算子を作成できnewます。)delete

私が覚えているように、VS 6.0 には_realloc_dbg.

#ifdef _DEBUG
#define _CRTDBG_MAP_ALLOC 1
#include <Crtdbg.h>
#define malloc(size) _malloc_dbg(size,_CLIENT_BLOCK,__FILE__,__LINE__)
#define free(addr) _free_dbg(addr,_CLIENT_BLOCK)
#endif
于 2012-05-16T20:10:10.137 に答える
1

BoundsChecker (現在は DevPartner) を試すことができます: http://www.microfocus.com/products/micro-focus-developer/devpartner/index.aspx

コード内のメモリ リーク、インターフェイス リーク、およびその他の問題を確認できます。

于 2012-05-16T20:20:58.493 に答える