メモリーリークの原因がわからない – プログラミング – Home

メモリーリークの原因がわからない
 
通知
すべてクリア

[解決済] メモリーリークの原因がわからない


TKF3
 TKF3
(@TKF3)
ゲスト
結合: 16年前
投稿: 3
Topic starter  

TKF3といいます。
環境は、WinXP(SP3) VC++6 MFC です。

作成したソフト終了時に、以下のメッセージが表示されます。
----------------------------------------------------------------------
Detected memory leaks!
Dumping objects ->
oleinit.cpp(86) : {84} client block at 0x00D25F98, subtype 0, 64 bytes long.
a CCmdTarget object at $00D25F98, 64 bytes long
Object dump complete.
スレッド 0x360 終了、終了コード -17891602 (0xFEEEFEEE)。
----------------------------------------------------------------------

メモリーリークを起こしているのはわかります。
しかし、色々と調査してはいるのですが、
原因を特定できていません。

どなたか、ご教授おねがいします。


引用未解決
トピックタグ
ん?
 ん?
(@ん?)
ゲスト
結合: 17年前
投稿: 25
 

開放していないから…としか、言い様が無い。


返信引用
bun
 bun
(@bun)
ゲスト
結合: 24年前
投稿: 761
 

oleinit.cpp(86)と表示されているんで、その場所を見てみましょう。

すると、AfxOleInit() 関数の中で
pThread->m_pMessageFilter = new COleMessageFilter;
としているのが分かります。

なんとなく、AfxOleInit() に対応しそうな、AfxOleTerm()がすぐ下にあるので
ざっと眺めると、115行目に
delete pThread->m_pMessageFilter;
とあります。

そんなわけで、AfxOleTerm()の呼び忘れの可能性が高いかと、
原因そのものよりも、調べ方が伝わったなら幸いです。


返信引用
TKF3
 TKF3
(@TKF3)
ゲスト
結合: 16年前
投稿: 3
Topic starter  

>ん?さん
すいません、文章の説明不足でした。
エラーメッセージにある「oleinit.cpp」は、自分では記述していません。
調べてみると、
C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC
に格納されていました。

自分では心当たりのないエラーだったので、原因がわからない状態です。

>bunさん
返信ありがとうございます。

>なんとなく、AfxOleInit() に対応しそうな、AfxOleTerm()がすぐ下にあるので
>ざっと眺めると、115行目に
> delete pThread->m_pMessageFilter;
>とあります。

>そんなわけで、AfxOleTerm()の呼び忘れの可能性が高いかと、
>原因そのものよりも、調べ方が伝わったなら幸いです。

AfxOleTerm()関数の先頭で、ブレークポイントを設置してみました。
すると、終了時に関数自体はコールされていました。
ただし、109行目のif (!bJustRevoke)でbJustRevoke=1のために、
delete pThread->m_pMessageFilter;
の処理に流れないということまでわかりました。

現時点では、AfxOleTerm()について、検索している最中です。


返信引用
TKF3
 TKF3
(@TKF3)
ゲスト
結合: 16年前
投稿: 3
Topic starter  

解決しました!

試しに、AfxOleTerm(FALSE);をデストラクタに記述したところ、
エラーメッセージは消え、
スレッド 0x360 終了、終了コード -17891602 (0xFEEEFEEE)。
という記述になりました。

ここで、終了コードが異常値なので、終了時のコードを追った所、
CMainFrame::OnClose()の関数の中に、余計なコードが記述していました。

結果を言うと、自分のミスでした。

レスいただいた方ありがとうございました。
お騒がせしました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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