troushoo

最適化を無効にして、.NET のソースデバッグをする方法

Microsoft のサイトでも公開されている通り、Visual Studio を利用すると.NET のソースデバッグを実行することが可能です。
ただし、上記のMicrosoft のサイトの方法では、.NET のモジュールが最適化されているため、例えばソースデバッグ時にローカル変数が確認できません。


そこで、今回紹介する以下の方法を用いると、.NET のソースデバッグ時に、.NET のモジュールの最適化を無効にしローカル変数も確認できるようになります。


最適化を無効にして、.NET のソースデバッグをする方法
以下、Visual Studio 2013 で試した方法を紹介します。
1. コマンドプロンプトを起動します。

2. 以下のコマンドを実行し、環境変数をセットします。
set COMPLUS_ZapDisable=1


3. 以下のコマンドを実行し、Visual Studio を起動します。
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe"
*「12.0」の部分は、Visual Studio のバージョンごとに代わります。


4. .NET 4.5.1 以上のプロジェクトを開き、プロジェクト名を右クリック →「プロパティ」をクリックします。


5. 「デバッグ」タブで、「Visual Studio ホスティング プロセスを有効にする」のチェックを外します。
232-4
このチェックを外す事による大きな影響はありませんが、以下の二つの機能が使えなくなります。
・部分信頼アプリケーションのデバッグができなくなる
・イミディエイト ウィンドウでコードのテストができなくなる

6. 「デバッグ」→「オプションと設定」を開き、.NET のソースデバッグを実行するための設定を行います。


7. 「デバッグ」→「全般」で以下の設定を行います。
・「マイ コードのみを有効にする」のチェックを外す
・「.NET Framework ソースのステッピングを有効にする」のチェックを入れる
・「プロパティおよび演算子をステップ オーバーする (マネージのみ)」のチェックを外す
・「ソース サーバー サポートを有効にする」のチェックを入れる
・「元のバージョンと完全に一致するソース ファイルを必要とする」のチェックを外す


8. 「デバッグ」→「シンボル」で「Microsoft シンボル サーバー」にチェックを入れます。


9. アプリのデバッグを開始し、.NET のデバッグをすると、最適化が無効化されており、ローカル変数も確認できます。


補足
上記方法でうまくソースデバッグができない場合は、プロジェクト名を右クリック →「プロパティ」→「ビルド」の「32 ビットの優先」のチェックを外してください。
MS の公式サイトで上記設定が必須とは見つけられませんでしたが、筆者の環境では上記設定をするとうまくいくことがありました。



情報元
How to disable optimizations when debugging Reference Source (英語)

関連記事
フリーのdotPeek を用いて、任意の.NET モジュールをソースデバッグ


  1. 2015/04/06(月) 22:14:49|
  2. Visual Studio
  3. | トラックバック:0
  4. | コメント:0
<<OS の機能を使って、パフォーマンスモニターのデータをSQL サーバーに格納する2つの方法 | ホーム | Ubuntu のインストールCD を用いて、Windows にログインすることなく、Windows のパスワードをリセットする方法:chntpw>>

コメント

コメントの投稿


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

トラックバック

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

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

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

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

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