メニュー
ブログ更新履歴
コンテンツ更新履歴
リンク
  • Magome
  • クラウドベースのMIDIシーケンサ
    音楽制作に興味のある方を対象に、スタンドアロンでも使え、ネットならではの面白さも兼ね備えた音楽制作アプリの提供を目指しています。
twitter

デバッガで文字列(std::string)を見てみると、文字コードが合ってなくて日本語が文字化けして表示されることがあると思います。

昨今のアプリ開発では、内部的に Shift_JIS を使うケースは減ってきてるので、いっそのこと std::string は UTF-8 として表示してくれるほうが嬉しい気がします。

というわけで、デバッガで std::string を UTF-8 として表示させる方法です。

開発環境を作る際、毎度行うことなので、備忘録かねて。

VisualStudio2015 の場合 anchor.png

%VSINSTALLDIR%\Common7\Packages\Debugger\Visualizers\stl.natvis
を編集します。

  <!-- VC 2015 -->
  <Type Name="std::basic_string&lt;char,*&gt;">
      <DisplayString Condition="_Mypair._Myval2._Myres &lt; _Mypair._Myval2._BUF_SIZE">{_Mypair._Myval2._Bx._Buf,na}</DisplayString>
      <DisplayString Condition="_Mypair._Myval2._Myres &gt;= _Mypair._Myval2._BUF_SIZE">{_Mypair._Myval2._Bx._Ptr,na}</DisplayString>
      <StringView Condition="_Mypair._Myval2._Myres &lt; _Mypair._Myval2._BUF_SIZE">_Mypair._Myval2._Bx._Buf,na</StringView>
      <StringView Condition="_Mypair._Myval2._Myres &gt;= _Mypair._Myval2._BUF_SIZE">_Mypair._Myval2._Bx._Ptr,na</StringView>
    • 上記の ",na" となってる 4 個所を ",s8" に変更して保存です。
Page Top

インストールされたファイルを直接編集することに抵抗があるような場合は、ユーザーフォルダを使う方法のほうが良いかもです。 anchor.png

%USERPROFILE%\My Documents\Visual Studio 2015\Visualizers\
に stl.natvis をコピーして、そのファイルを同様に編集します。

      • ユーザーフォルダのほうの設定で上書きされるっていう仕組みです。
      • コピー先ファイル名は同じじゃなくてもOK。
      • たぶん書き換えた箇所のみの記述でOK。

最近のソフトウェアは UTF-8 を使う機会が増えてきているので、デフォルトで UTF-8 表示になっててくれるといいなーと思ってます。


Front page   Freeze Diff Backup Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 2227, today: 1, yesterday: 5
Princeps date: 2017-10-17 (Tue) 10:14:50
Last-modified: 2017-10-17 (Tue) 10:14:50 (JST) (732d) by takatsuka