visual-studio-2010-Visual Studioのデバッガーで動的に割り当てられたヌル終了文字列を表示する

nullで終了し、動的に割り当てられた文字配列(C)にカーソルを合わせると、最初の文字だけではなく、文字列の完全なコンテンツが表示されるように、Visual Studioのデバッガーの既定の動作を変更する方法はありますか?

私はVisual Studio 2010を使用していることに言及する必要があります。ただし、VS2012でのみこれを達成する方法があれば、それも知りたいと思います。

ベストアンサー
Visual Studio C++ Debugger Tipsの便利なリンクがあります。

To interpret a pointer expression as a string, you can use ‘,s’ for an simple null-terminated string, ‘,s8‘ for a UTF-8 string, or ‘,su‘ for a Unicode string. (Note that the expression has to be a pointer type for this to work).

たとえば、次の関数で中断します

void function(char* s)
{
   // break here
}

MSVCウォッチウィンドウ(またはデバッガー)では、最初にsを追加しようとしますが、最初の文字のみが表示されます。ただし、上記の情報を使用すると、ウォッチウィンドウの変数に次の接尾辞を追加できます。

s,s8

または、Unicodeであることがわかっている場合は、以下を試してください。

s,su

これは、任意のポインター、または他のデータ型、たとえばQStringの内容のデバッグ:

QString str("Test");
// break here

このため、可能なウォッチウィンドウ(またはデバッガー)ステートメントは次のとおりです。

((str).d)->array,su                 <-- debug QString (Qt4) as unicode char string
(char*)str.d + str.d->offset,su     <-- debug QString (Qt5) as unicode char string
0x0c5eae82,su                       <-- debug any memory location as unicode char string

、s8または、suを追加しても機能しない場合は、他のバリアントを試してください。

転載記事の出典を記入してください: visual-studio-2010-Visual Studioのデバッガーで動的に割り当てられたヌル終了文字列を表示する - コードログ