2

この質問と重複する可能性があります。

/clr スイッチといくつかの C++/CLI コードを使用して .Net コンポーネントを使用する MFC プロジェクトがあります。もともとこれはVS2005にありました。

VS2012 Update 2 にアップグレードすると、デバッグ中に、ネイティブ データ型の値または型が表示されませんでした。VS2010でネイティブデータ型可視化(natvis)の新しい仕組みが導入され、VS2012で拡張・強化されたことを知りました。そのページの情報に従って、Managed C++ Compatibility ModeC/C++ edit and continueのチェックを外しました。この後、ブレークポイントが無効になり、ヒットしなくなりました。「Only Managed」デバッガーを使用すると、ブレークポイントにヒットしましたが、値が表示されませんでした。

最後に、「混合」デバッガーを使用__debugbreak()して、強制的に中断しました。これにより、ローカル auto の場合にのみ整数値のみが表示されました。データ型が正しく取得されました。ただし、std::stringまたはCString値は表示されず、代わりにそのタイプが値列に表示されます。同様に、ポインター、クラス メンバー、または関数の引数の値は表示されず、型情報、未定義の値、または範囲外が値の列に表示されます。

この動作は、オート、ローカル、ウォッチ ウィンドウ、およびシンボル上のマウス ホバーで一貫しています。

VS2012 混合モード C++/CLI MFC アプリケーションでのデバッグ中にネイティブ データ型の値を表示するにはどうすればよいですか。

この質問を読み、すべてのシンボルがモジュール ウィンドウに読み込まれていることを確認しました。

どうやら、Microsoft はこの問題を認識しており、Update 3 の次の CTP で修正されるはずです。

さらに、なぜ使用する必要があるの__debugbreak()ですか?

4

2 に答える 2

2

数日前、Microsoft は Visual Studio Service Pack 3 RC をリリースしました。リンクは次のとおりです。 http://www.microsoft.com/en-us/download/details.aspx?id=38832

于 2013-05-10T18:47:44.367 に答える
0

Visual Studio 2012 を再インストールし、Service Pack 2 を適用しないでください。

于 2013-04-26T16:28:10.183 に答える