troushoo

.NET Frameworkのソースコード/ソースデバッグ

Microsoftのサイトで.NET Frameworkのソースコードが公開されており、.NET 4.5のソースコードも2012/8/15のRTM(Release to Manufacturing)に合わせて公開されました。
今回は、.NET 4.5のソースコードの以下の点について紹介します。
1. ソースコード単体のダウンロード方法
2. .NETのソースデバッグ
  2.1. 動的にソースをダウンロードしながらのVisual Studio 2012でのソースデバッグ
  2.2. 静的にソースをダウンロード後、Visual Studio 2012でのソースデバッグ

1. ソースコード単体のダウンロード方法
Microsoft社のホームページよりソースコードをダウンロードできます。
.NET 4.5は”Version”が”4.5”の列の”Download”からダウンロードできます。
.NET 4.5のソースコードのダウンロード
ダウンロードしたmsiファイルを実行することによりソースコード(とシンボル)がインストールされます。
デフォルトでは、C:\Users\<ユーザー名>\Documents\RefSrcにインストールされます。
以下は、System.Consoleクラスのソースコードのスクリーンショットです。
System.Consoleクラスのソースコード

2. .NETのソースデバッグ
.NET Frameworkのソースデバッグを行うことができます。すなわち、例えばSystem.Console.WriteLine()のステップ実行ができたりします。
ソースコードを理解し.NETの内部の動きがわかることで、アプリケーションの最適化につなげることも可能になります。
以下、具体的な手順を記述します。
2.1. 動的にソースをダウンロードしながらのVisual Studio 2012でのソースデバッグ
.NETのソースを手動でダウンロードすることなく、.NETのソースデバッグをする方法を紹介します。
1. System.Console.WriteLine()が2つのみのC#のサンプルプログラムを作成します。
  デモ用に、一つ目のSystem.Console.WriteLine()にブレークポイントを張っておきます。
サンプルプログラム
2. デバッグ→オプションと設定 をクリックします。
オプションと設定
3. “全般”で以下の設定を行います。
  - マイ コードのみを有効にする のチェックを外す
  - .NET Framework ソースのステッピングを有効にする のチェックを入れる
  - プロパティおよび演算子をステップ オーバーする (マネージのみ) のチェックを外す
  - ソース サーバー サポートを有効にする のチェックを入れる
  - 元のバージョンと完全に一致するソース ファイルを必要とする のチェックを外す
全般の設定
4. “シンボル”でフォルダのアイコンをクリックしhttp://referencesource.microsoft.com/symbols を入力し、OKをおします。
シンボルの設定
5. シンボルがダウンロードされます。
シンボルのダウンロード
6. F5を押し、デバッグを開始します。
7. ブレークポイントで引っかかったところで、F11(=ステップイン)を実行します。
ブレークポイントヒットの状態
8. End User License Agreementが表示されるので、Acceptを押します。
End User License Agreement
9. System.Consle.WriteLine()のソースコードが表示されます。
呼び出し履歴からもSystem.Console.WriteLine()の中にいることがわかります。
WriteLine()のデバッグ中

2.2. 静的にソースをダウンロード後、Visual Studio 2012でのソースデバッグ
.NETのソースを一括でダウンロード・インストール後に、(動的にソースをダウンロードすることなく).NETのソースデバッグをすることもできます。何らかの理由でデバッグ時にネットワークにアクセスできない際はこの方法が使えます。
そのためには、2.1.の手順の4でシンボルを設定する際に、ローカルのシンボルパス(=デフォルトではデフォルトでは、C:\Users\<ユーザー名>\Documents\RefSrc\Symbols)を指定すればOKです。
ローカルのシンボルを設定

補足:
・今まではMicrosoftはパッチのシンボルは公開しておりません。
したがって、.NETのパッチを当ててしまうとシンボルが不一致になり、ソースデバッグができなくなる可能性があります。
2012/9/14現在Windows Updateが最新の状態では問題ありませんでしたが、もし上記の方法でソースデバッグがうまくいかない場合は、.NETのパッチが当たっていない環境でお試しください。

URL:
・Announcing the release of .NET Framework 4.5 RTM - Product and Source Code
http://blogs.msdn.com/b/dotnet/archive/2012/08/15/announcing-the-release-of-net-framework-4-5-rtm-product-and-source-code.aspx
・Microsoft Reference Source Code Center
http://referencesource.microsoft.com/


  1. 2012/09/16(日) 14:51:51|
  2. Visual Studio
  3. | トラックバック:0
  4. | コメント:0
<<Network Monitorの後継ソフトMicrosoft Message Analyzer Betaリリース | ホーム | .cmdtree : WinDbg利用の際に、任意のデバッグコマンドをGUIから実行>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
https://troushoo.blog.fc2.com/tb.php/78-aa68fdad
この記事にトラックバックする(FC2ブログユーザー)

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

ツール (80)
ネットワーク (37)
Wireshark (44)
Visual Studio (55)
WinDbg (34)
SOS・Psscor2/Psscor4 (25)
Linux (19)
コンテナ (4)
Azure (17)
Tips (19)
AD (8)
.NET (24)
Python (6)
Java (5)
SQL (1)
英語 (1)
About Me (1)
未分類 (0)

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する