メモリリーク場所の確定 – プログラミング – Home

メモリリーク場所の確定
 
通知
すべてクリア

[解決済] メモリリーク場所の確定


gg
 gg
(@gg)
ゲスト
結合: 18年前
投稿: 185
Topic starter  

いつもお世話になっています。ggです。

構造体の転送2008/05/14(水) 09:11:13
を質問したのですが。

その内容で
プログラムを終了するとメモリリークを検出しました。

DrawPolygonDLL.DLL 終了中
Detected memory leaks!
Dumping objects ->
{246381} normal block at 0x047353F8, 280 bytes long.
Data: < > CD CD CD CD CD CD CD CD 00 00 00 00 CD CD CD CD
Object dump complete.
プログラム '[120] RaDebug.exe: ネイティブ' はコード 0 (0x0) で終了しました。

ここで{246381}はファイルの246381行目ですが、
探したのですが、そういう大きさの行目がないです(自分のプログラムに最大5桁)。

Dumping objects -> は
どこのファイルを明示してないです。
割り当てられたブロックをどう追跡すればいいでしょうか。

よろしくお願いします。

環境:.Net MFC使用 WinXP


引用未解決
トピックタグ
gg
 gg
(@gg)
ゲスト
結合: 18年前
投稿: 185
Topic starter  

自己解決しました。
mp_PolySctGF2は開放しなかっただけでした。

すみませんでした。

でも、{246381}行目番号ぜんぜん関係ない番号です、
参考にならないことです。


返信引用
Kerry
 Kerry
(@Kerry)
ゲスト
結合: 20年前
投稿: 192
 

{246381}は行番号ではなく、何番目に割り当てられたメモリブロックかを
表すメモリ割り当て番号です。

番号をもとにCRTのメモリ割り当てを追跡するには、
_crtBreakAlloc グローバル変数について調べてください。


返信引用
愛飢え男
 愛飢え男
(@愛飢え男)
ゲスト
結合: 17年前
投稿: 8
 

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

を各ソースに記述


返信引用
gg
 gg
(@gg)
ゲスト
結合: 18年前
投稿: 185
Topic starter  

Kerryさん、愛飢え男さん
ご返事ありがとう。

>{246381}は行番号ではなく、何番目に割り当てられたメモリブロックかを
>表すメモリ割り当て番号です。

なるほど。

時間があったら、やってみます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました