ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

CLR Profilerのエラー アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。

.Netで作成したメモリが解放されているかを確認しようと思い
CLR Profilerからアプリを起動して操作後、アプリを終了すると
エラーダイアログが表示されました。

ダイアログのメッセージ
「アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。」

・・・これでは全然メモリについて確認できません。

もう一度「Start Application」ボタンを押してアプリを起動したところ
アプリのウィンドウの後ろにもう一つ別のウィンドウが立ち上がっていました。

別ウィンドウのメッセージ
「Waiting for applicatioon to start common language runtime」

.NetのアプリはC#2008、.Net Frameworkのバージョンは3.5、
CLR Profilerのドキュメント「CLRProfiler.doc」の日付は October 2003
なのでCLR Profilerのバージョンが古い可能性を疑い、いろいろ調べました。
(2003年頃だと、C#2003、.Net Frameworkは1.1だったと思う。)

結果、.Net Framework 2.0用のCLR Profilerを見つけたので
以下のURLからダウンロードしました。
CLR Profiler for the .NET Framework 2.0

アプリのほうも、.Net Frameworkのバージョンを2.0にして再ビルド。
やり方はプロジェクトのプロパティを表示し、[アプリケーション]タブを選択し
[対象のフレームワーク]にて[.Net Framework 2.0]を選択します。
f:id:UnderSourceCode:20130504112136j:plain


Net Framework 2.0用のCLR Profilerから、再ビルドしたアプリを起動し
無事メモリの解析ができました。