troushoo

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

  1. --/--/--(--) --:--:--|
  2. スポンサー広告

.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
http://troushoo.blog.fc2.com/tb.php/78-aa68fdad
この記事にトラックバックする(FC2ブログユーザー)

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

ツール (92)
ネットワーク (76)
Visual Studio (56)
SOS・Psscor2/Psscor4 (25)
WinDbg (25)
Linux (23)
Azure (17)
Tips (20)
英語 (1)
About Me (1)
未分類 (0)

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

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

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。