LoginSignup
9
6

More than 5 years have passed since last update.

VisualStudio2015のデバッグ中に「最適化されている可能性があります。」と表示されてしまって変数が参照できないときは…

Last updated at Posted at 2016-06-20

概要

VisualStudioでデバッグ中、ローカル変数または引数はこの命令ポインターで利用できないため、値を取得することはできません。最適化されている可能性があります。と表示され、VisualStudioの自動変数ウィンドウで変数の中身が参照できなくなったことはありませんか?
それを解除して、変数を参照できるようにする方法です。

本題

下記の手順で参照できるようになります。

手順

  1. VisualStudioのプロジェクトタブを選択
  2. [プロジェクト名]のプロパティ(E)を選択
  3. ビルドを選択
  4. 全般のコードの最適化(Z)のチェックボックスを外す

なぜ参照できなくなる?

MSDN(方法 : 最適化されたコードをデバッグする)の記述によると、こういう理屈だそうです。

コンパイラは、ソース コードを最適化するときに命令を再配置したり再構成したりします。これにより、コンパイル後のコードの実行効率が向上します。しかし、この命令の整理が原因となり、一連の命令に対応するソース コードをデバッガーが識別できなくなる場合があります。

そういうわけで単に最適化をせずにビルドすることで参照できるようになったのでした。

ちなみに、最適化する・しないのステータスはプロジェクトのソースコードに影響を与えます。ソースコードをgit管理している場合はご注意ください。

[ProjectName].csproj
<Optimize>true<Optimize>
// ↑
// ↓
<Optimize>false<Optimize>

「参照できる」ものは何?

こちらのMSDN([自動変数] ウィンドウと [ローカル] ウィンドウ)が詳しいです。

参考

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6