web-dev-qa-db-ja.com

Visual Studio 2015のデバッグ:ローカル変数を展開できませんか?

Visual Studio 2015プレビューを使用していて、プロジェクトをデバッグしようとしています。以前はVS 2012を使用していましたが、ローカル変数にカーソルを合わせて展開し、その値を確認できることに大きく依存していました。私は今2015年にこれをやろうとしていますが、変数にカーソルを合わせると、表示されるボックスに「(ローカル変数)クラス名変数名」(たとえば「(ローカル変数)文字列タイトル」)と表示されます。展開ボタンはなく、ボックスの変数の値は表示されません。

変数にカーソルを合わせて展開できるように変更する必要がある設定はありますか?

バグかもしれません。 お願いします接続バグを提出してください もしあれば、それを再現します。

それまでは、デバッガオプションを設定してレガシーデバッグエンジンを使用することで問題を回避できる場合があります。ツール->オプション->デバッグ->全般:「レガシーC#とVB式エバリュエーター」および「管理互換モードを使用」。

その回避策は毎回私のために働いています。しかし、バグをまだ報告してください!

Options window

89
Andrew Arnott

ローカル変数にカーソルを合わせると、さらに深く潜ることができるものもあれば、何も表示されないものもあります。掘り下げた後、msdn here の記事を見つけました。VSの設定をリセットすることをお勧めします。それをしたら、リリースモードで実行していて、一部のデバッグ機能が利用できない可能性があるという通知を受け取りました。デバッグモードに変更すると、すべてが正常に機能しました。

うまくいけば、これもあなたのために働くでしょう。

19
user2325333

here で説明されているように、[デバッグ]-> [オプション]-> [デバッグ]-> [全般]で[モジュールロード時のJIT最適化の抑制(管理のみ)]チェックを有効にする必要があります。

また、プロジェクトのプロパティで「コードの最適化」フラグを削除する必要があります。

8
ilCosmico

VS2015で同様の問題が発生し、一部の変数にはデバッグ値が表示され、他の変数にはホバーすると何も表示されませんでした。

Andrew Arnottから次の設定を有効にすると、問題が解決しました。ツール->オプション->デバッグ->全般:「レガシーC#およびVB式エバリュエーターを使用」

7
Jon Knopp

CLIを使用してデバッグするときに、ネイティブコードに侵入し、STLコンテナーのコンテンツにアクセスする方法を発見しました。

Tools\Options ...\Debugging\General:[管理された互換モードを使用する]のチェックを外します(はい!確認しないでください!)

ネイティブコードで、ブレークポイントを追加する代わりに、これを追加するだけです。

assert(false);

海岸に打ち勝つ場合は、[再試行]をクリックしてデバッグするか、[無視]をクリックして続行します。

Visual Studio 2015によるハッピーデバッグ:)

こちせ

1
Kochise

これはVS2017でうまくいきました(私のVSはドイツ語であるため、タブ名が少し異なる可能性があります):

プロジェクト->プロパティ-> C/C++->コード生成-> RunTimeErrorCheck->\RTC

また、コードを高速化するとローカル変数の値を監視できなくなる可能性があるため、最適化オプションを無効にしてみてください。

プロジェクト->プロパティ-> C/C++->最適化->無効

0
dalapiz

「リリースとデバッグ」でコンボボックスをデバッグに戻すだけで、コードを再度デバッグするときに変数の展開を確認できることがわかりました。

この最新のソリューションは、VS 2017で自宅のPCで機能しました。

私の仕事用PCは、「ビルド>>ソリューションのクリーンアップ」オプションを実行した後、2017年にこの拡張を表示でき、コンボボックスが「リリース」に設定されていても機能します。

このすばらしいデバッグの助けがVSから得られることを望んでいる誰にとっても幸運です。これらの方法のいずれかを使用することで、「通常」に戻れることを願っています。

0
Jacob Fortuna

縮小されたJavaScriptファイルを使用していて、デバッグにTypeScriptファイルを使用したいプロジェクトがありました。縮小されていないJavaScriptと関連するTypeScriptをプロジェクトに配置し、縮小されたものではなく通常のJavaScriptファイルを使用するように参照を変更しました。 TypeScriptファイルでブレークポイントがヒットしましたが、ホバー情報を取得していませんでした(驚いたことに、ウォッチが機能しているようにオブジェクト/変数を追加するように見えました)。

修正するには、プロジェクトからファイルから縮小されたJavaScriptを除外し、JavaScriptを含めました。 (私が残したTypeScriptファイルは除外しました)。

0
spacebread