【初心者C++】メモリリーク検出ツールを使ってみたら死ぬほどメモリリークしてた
制作途中のゲームが死ぬほどメモリリークしてた
現在僕はDirectX9を使って簡単な3Dゲームを制作中なのですが、
CRTライブラリ
というメモリリーク検出ツールがあることを知り、興味本位で使ってみました。
その結果がこれ。
Detected memory leaks!
Dumping objects ->
{283} normal block at 0x00000133BC4D8800, 48 bytes long.
Data: < 8 3 8 3 > 18 38 FF B4 33 01 00 00 1C 38 FF B4 33 01 00 00
{280} normal block at 0x00000133B4FF3810, 56 bytes long.
Data: < P ? > 50 A2 ED 3F F7 7F 00 00 04 00 00 00 00 00 00 00
{279} normal block at 0x00000133BC4D8020, 48 bytes long.
Data: <( M 3 , M 3 > 28 8E 4D BC 33 01 00 00 2C 8E 4D BC 33 01 00 00
{276} normal block at 0x00000133BC4D8E20, 48 bytes long.
Data: < ? > F0 A3 ED 3F F7 7F 00 00 03 00 00 00 00 00 00 00
{275} normal block at 0x00000133BC4D8B10, 48 bytes long.
Data: 54 EE 38 14 25 00 00 00 80 EF 38 14 25 00 00 00
{274} normal block at 0x00000133BC4D7FB0, 40 bytes long.
Data: <0 ? > 30 B9 ED 3F F7 7F 00 00 01 00 00 00 00 00 00 00
{273} normal block at 0x00000133BC4D8410, 48 bytes long.
Data: 54 EE 38 14 25 00 00 00 80 EF 38 14 25 00 00 00
{272} normal block at 0x00000133BC4D88E0, 40 bytes long.
Data: <0 ? > 30 B9 ED 3F F7 7F 00 00 01 00 00 00 00 00 00 00
{271} normal block at 0x00000133BC4D8100, 48 bytes long.
Data: 54 EE 38 14 25 00 00 00 80 EF 38 14 25 00 00 00
{270} normal block at 0x00000133BC4D85D0, 40 bytes long.
Data: <0 ? A> 30 B9 ED 3F F7 7F 00 00 00 00 00 00 00 00 98 41
{269} normal block at 0x00000133BC4D8C60, 48 bytes long.
Data: 54 EE 38 14 25 00 00 00 80 EF 38 14 25 00 00 00
{268} normal block at 0x00000133BC4D8D40, 40 bytes long.
Data: <0 ? > 30 B9 ED 3F F7 7F 00 00 00 00 00 00 00 00 98 C1
{267} normal block at 0x00000133BC4D86B0, 48 bytes long.
Data: < S ? 8 % > D8 53 EE 3F F7 7F 00 00 80 EF 38 14 25 00 00 00
{266} normal block at 0x00000133BC4D7F40, 40 bytes long.
Data: <8 ? p > 38 B0 ED 3F F7 7F 00 00 00 00 00 00 00 00 70 C1
{265} normal block at 0x00000133BC495680, 8 bytes long.
Data: <@ M 3 > 40 7F 4D BC 33 01 00 00
{264} normal block at 0x00000133BC495720, 16 bytes long.
Data: < I 3 > B0 D5 49 BC 33 01 00 00 00 00 00 00 00 00 00 00
{263} normal block at 0x00000133BC49D5B0, 32 bytes long.
Data: < WI 3 VI 3 > 20 57 49 BC 33 01 00 00 80 56 49 BC 33 01 00 00
{258} normal block at 0x00000133BC49CE30, 36 bytes long.
Data: < H > 00 00 00 00 00 00 00 00 00 00 48 C2 00 00 00 00
{167} normal block at 0x00000133B4F38460, 16 bytes long.
Data: < S ? > E8 53 EE 3F F7 7F 00 00 00 00 00 00 00 00 00 00
Object dump complete.
なんと合計で748Bものメモリリークをしていました。
まだろくにゲームとしてできていない状態でですよ?w
どうやらUnityC#に慣れすぎてしまっていたせいで、完全にC++のメモリの動的確保・解放について頭に入っていなかったようです。
これについて再度勉強し、メモとして再度ブログにも残しておこうと思います。
追記:ブログ更新しました
2024/08/26
ブログ記事一覧に戻る