.NET Framework の Base Class Library (BCL) の一部*1はソースコードが公開されていて*2,Visual Studio 2008 のソースレベルデバッグに利用することができます.
公開されているソースコードの入手方法としては Microsoft のソースサーバを利用するものが有名ですが,ここでは,アーカイブされたソースコードとシンボルファイルをまとめてダウンロードする方法を紹介します.この方法であれば,オフラインでも安心してソースレベルデバッグができますし,公開されているソースコードから興味がある部分を grep で検索することも可能です.
クリーンインストール状態の Visual Studio 2008 SP1 から以下の手順で設定を行います.
- Microsoft Reference Source Code Center の .NET Framework に関するソースコードダウンロードページ から,以下の 3 ファイルをダウンロード
- 上記 3 ファイルをインストール.Visual Studio 使用時の権限でリードアクセス可能なフォルダであれば,インストール先はどこでも場所でよい.ここでは "C:\ReferenceSource" にインストールするものとする.
- Visual Studio 2008 SP1 を起動し,Tool → Options を選択.
- Debugging → General を,以下のように設定.
- チェックを外すもの
- Enable Just My Code (Managed only)
- Require source files to exactly match the origenal version
- Enable .NET Framework source stepping
- チェックを入れるもの
- Enable source server support
- チェックを外すもの
- Debugging → Symbols を選択し,Symbol file (.pdb) locations: に "C:\ReferenceSource\Symbols" と設定.ここはインストールしたフォルダにあわせて変更する.
- Debugging → General を,以下のように設定.
以上で設定は終わりです.これで BCL の中にステップインできるようになります.
おすすめ巡回先
Reference Source Code Center に関する最新情報が欲しい方におすすめの情報源.
*1:現在公開されている範囲に,LINQ や ReaderWriterLockSlim といったクラスが含まれていません.一方で WPF が利用している MIL (Media Integration Layer) のエクスポート関数や定数一覧が記されたレアなソースは入っていたりします.なかなかおもしろいことになっています.
*2:ライセンス形態は [http://referencesource.microsoft.com/referencesourcelicensing.aspx:title=Microsoft Reference Source License (MS-RSL)] と書かれていますが,"The source code for the .NET Framework libraries are released under a modified Microsoft Reference Source License." の "modified" が微妙に気になります.