4

Visual Studio 2010 から Visual Studio 2012 に切り替えたところ、Visual Studio 2012 デバッガーに問題があります。C コードのデバッグ時に wchar_t がテキストとして表示されなくなったようです。

簡単に言うと、次の小さくて単純なプログラムを考えてみてください。

#include <wchar.h>
int main()
{
  wchar_t *ppp = L"abcdef";
  char    *zzz = "abcedf";

  return 0;

}

vs2012 では、このプログラムをデバッグするときに ppp watch に "a"{97} が表示され、可視化を選択できる虫眼鏡がありません。
これはvs2010でうまく機能しており、時計にはテキスト全体が表示され、虫眼鏡が表示されます。

これは、変数の上にカーソルを置き、その値を即時ウィンドウに表示するときにも発生します。chars が正しく表示され、/Zc:wchar_t フラグが正しく設定されています。実際、vs 2012 でプログラムをコンパイルし、vs2012 と vs2010 でデバッグしました。同じ結果が得られたので、コンパイルの問題ではないようです。

誰でもそのような問題に遭遇しますか?修正または回避策はありますか ( ppp,su の値を尋ねて強制する以外に)?

4

2 に答える 2

9
  1. コード内のコードにブレークポイントを配置しますmain()
  2. プログラムを開始し、デバッグ ブレークポイントがヒットするのを待ちます
  3. pppマウスで右クリック
  4. ポップアップ ウィンドウで[ウォッチを追加] を選択します。
  5. ウォッチコンソールを開く
  6. 探すppp
  7. 右クリックppp
  8. ポップアップ ウィンドウで[値の編集]を選択します。
  9. ",su" を追加して、"ppp" を "ppp,su" に変更します。

のコンテンツがpppUnicode テキストとして表示されるはずです。

デフォルトの出力を変更するデバッグ オペレータは次のとおりです。

  • su : Unicode テキスト (UTF-16)
  • s8 : UTF-8
  • o : 8 進数
  • d : 小数
  • x : 16 進数
  • wc : Windows クラス
  • wm : Windows メッセージ
  • hr : HRESULT
  • ! : STL ビジュアライゼーションをオフにします
  • c : アスキー文字

、そしておそらくそれ以上。

于 2014-07-18T11:15:12.640 に答える