2016-07-29 14 views
0

Visual Studio 2013(C++)を使用していて、メモリリークが発生しています。 私はいくつかのdllで作業しているので、dllがどれくらいのメモリを割り当てるかを知ることができるかどうか疑問に思っていました。動的にロードされたライブラリがメモリリークを引き起こす原因を特定する方法

+1

'MSVC 'はプロファイラツールを提供していませんか? 「QtCreator」でもそうです。 –

+0

メモリはプロセスリソースであり、モジュールによって「所有」されていません。ほとんどのメモリリーク診断ユーティリティは、プログラマが原因を修正するのを助けるために、割り当てのスタックトレースをキャプチャしようとします。 Windows上のUmhd.exe。 –

答えて

1

Visual Studio 2015には優れたプロファイリングツール(Visual Studio 2013よりも優れています)があります。できる場合はそれに切り替えてください。それ以外の場合はProcess Explorerで必要な処理を行うことができます。ヒープサイズを確認するにはView -> Show Lower Paneをチェックし、View -> Lower Pane View -> DLLsをチェックしてください。プロセスをクリックすると、下のペインにはロードされたすべてのDLLが表示されます。次に、下部ペインの列見出しにSelect Columnsを使用して、プライベートバイトを表示することができます。例のスクリーンショット: enter image description here

0

は(_CrtDumpMemoryLeaksを使用してみてください)

それはデバッグバージョン

0

でのみ動作しますが、メモリの割り当て解析のための私のお気に入りのツールの一つがMemTrackです: http://www.almostinfinite.com/memtrack.html

それは非常にありますセットアップと使用が簡単で、クラスごとに割り当てられたメモリ/ブロックの詳細な故障を提供します。

関連する問題