
質問を見ていただいて有り難うございます。
当方、現在MFCのダイアログベースのプログラムを行なっているのですが、プログラム終了時にメモリリークが発生します。
今のところプログラムの動作自体に影響はないのですが、想定外の動作が起こると困るのでなんとかこのエラーを取り除きたいと考えています。
メモリリークの殆どは
_CrtSetBreakAlloc(Num);(指定した順序のメモリ割り当て時にブレークポイントを発生させる)
を利用して、メモリリークが起こっている部分のブレークポイントをチェックして消したのですが、どうしても残りのメモリリークが消えません。
残りのメモリリークは_CrtSetBreakAlloc(Num)で指定してもブレークポイントが出てきませんでした。
_CrtSetBreakAlloc(Num)は『ファイル名.cpp』のInitInstanceおよびコンストラクタで呼び出してみましたが、どちらも同じ結果になりました。
また、試しに『ファイル名Dlg』クラスを使用しない(ダイアログを開かないようにコメントアウト)ようにして終了しても同じ結果になりました。
_CrtSetBreakAlloc(Num)を設定する適切な位置や、このようなメモリリークが出る原因、解決方法などについてご存知の方がいらっしゃいましたら、お教えください。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
ちょっときつい書き方をしますが、楽して解決する方法はありません。
この「楽して」というのは、_CrtSetBreakAlloc(Num)に頼りきっていることです。
プロセス内で複数のスレッドを起動した場合、スレッドを終了せずにプロセスを終了すると、_CrtSetBreakAlloc(Num)では発見できないことがあります。
>解決方法などについて
究極的には、メモリを確保するnew/create系の処理に対して、メモリを解放するdelete/closeがすべて行われているかソースを虱潰しに確認していくしかありません。
あとは、タスクマネージャーのプロセスタブで「メモリ使用量」「スレッドの数」「ハンドルの数」などを監視しながら操作を行い、前述の値がどのように変化するかであたりをつけていくことです。
御回答有り難うございます。
>楽して解決する方法はありません。
確かに関数に頼りきりだったように思います。ご指摘有り難うございます。
>>解決方法などについて
(普通に使用する場合の)new/create系の処理については既にチェックが終わり…というか、
mydlg.DoModal();(mydlgはダイアログベースで自作した初期起動時のダイアログ)
をコメントアウトし、そもそもnew/create関係が呼び出されないようにしてもメモリリークが発生するので、途方にくれています。
タスクマネージャについては完全に盲点でした。プログラムを走らせて確認してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAの配列サイズとメモリに関して
-
メモリのセグメント違反の解決...
-
C言語で、メモリを解放しないで...
-
エクセルのメモリ使用状況/Appl...
-
「ヒープサイズの設定」て何?
-
メモリを解放しないとどうなる?
-
メモリが不足しています(VBA)
-
C言語初心者です。debug assert...
-
EXCEL-VBAにてADOのレコードセ...
-
PIC 文字 を 数値に 変換
-
C++のCopyFileでメモリが増える
-
こんなメッセージがでます
-
直接メモリにアドレス割付けで...
-
移動可能メモリ
-
JavaのStringの最大文字列長
-
非再入可能なプログラム
-
大容量のメモリ確保をスワップ...
-
H8 マイコン セクションの設...
-
H8について教えて下さい。
-
組み込み系でのmallocについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語で、メモリを解放しないで...
-
Access Violationについて
-
VBAの配列サイズとメモリに関して
-
メモリのセグメント違反の解決...
-
メモリが不足しています(VBA)
-
メモリ不足
-
大容量のメモリ確保をスワップ...
-
ファイルマッピング関数で失敗
-
PC-98で拡張メモリを使え...
-
エラーについて
-
「ヒープサイズの設定」て何?
-
エクセルのメモリ使用状況/Appl...
-
C言語における再帰呼び出しの...
-
オフスクリーンサーフェスへの...
-
1ページに収まるオブジェクト...
-
新規購入PCのスペックについて...
-
4GB搭載したマシンのメモリ情...
-
組み込み系でのmallocについて
-
ルネサスマイコン(R8C) ビルド...
-
Visual Basic Net2003
おすすめ情報