静的に割り当てられた配列がある場合、Visual Studioデバッガーはすべての配列要素を簡単に表示できます。ただし、配列が動的に割り当てられ、ポインターによってポイントされている場合、+をクリックして展開すると、配列の最初の要素のみが表示されます。デバッガーに伝える簡単な方法はありますか?このデータをFoo型とサイズXの配列として表示しますか?
静的に割り当てられた配列がある場合、Visual Studioデバッガーはすべての配列要素を簡単に表示できます。ただし、配列が動的に割り当てられ、ポインターによってポイントされている場合、+をクリックして展開すると、配列の最初の要素のみが表示されます。デバッガーに伝える簡単な方法はありますか?このデータをFoo型とサイズXの配列として表示しますか?
回答:
はい、簡単です。あなたが持っていると言う
char *a = new char[10];
デバッガで書く:
a,10
配列のようにコンテンツを表示します。
配列m4x4のデータを表示するには、2つの方法があります。
float m4x4[16]={
1.f,0.f,0.f,0.f,
0.f,2.f,0.f,0.f,
0.f,0.f,3.f,0.f,
0.f,0.f,0.f,4.f
};
1つの方法は、ウォッチウィンドウ(デバッグ/ Windows /ウォッチ)を使用することです。ウォッチを追加=
m4x4,16
これにより、データがリストに表示されます。
別の方法は、メモリウィンドウ(デバッグ/ Windows /メモリ)を使用することです。メモリの開始アドレスを指定=
m4x4
これにより、データがテーブルに表示されます。これは、2次元および3次元のマトリックスに適しています。
[メモリ]ウィンドウを右クリックして、バイナリデータの視覚化方法を決定します。選択肢は、整数、浮動小数点数、一部のテキストエンコーディングに制限されています。
ために、
int **a; //row x col
これを追加して見る
(int(**)[col])a,row
つまり、文字配列をいくつかのタイプの文字列として表示できます。次のように宣言された配列がある場合:
char *a = new char[10];
次のようにして、ウォッチウィンドウでUnicode文字列として出力できます。
a,su
多数あるため、可能な変換のすべてについては、MSDNページの表を参照してください。多くの異なる文字列バリアント、配列内の個々のアイテムを印刷するバリアントなど。
a,[10]
複雑なデータ型のCArrayがある場合でも、個々の要素を表示して、それら自体を拡張可能にすることができます。
ヒント#4の次のリンクをたどるMFC配列(CArray、CStringArrayなど)の場合
http://www.codeproject.com/Articles/469416/10-More-Visual-Studio-Debugging-Tips-for-Native-De
たとえば、「CArray pArray」の場合、ウォッチウィンドウに追加します
pArray.m_pData,5
最初の5つの要素を確認します。
pArrayが2次元のCArrayである場合、次の構文を使用して、2番目の次元の任意の要素を見ることができます。
pArray.m_pData[x].m_pData,y
変数で実行できる多くのことのリストは、この宝石のウォッチウィンドウのドキュメントにあります。https: //msdn.microsoft.com/en-us/library/75w45ekt.aspx
変数aについては、すでに他の回答で述べられているようなものがあります
a,10
a,su
しかし、フォーマットやサイズには、他にも次のような多くの指定子があります。
a,en (shows an enum value by name instead of the number)
a,mb (to show 1 line of 'memory' view right there in the watch window)
これを多次元配列で使用する方法を見つけていません。ただし、少なくとも(目的のエントリのインデックスがわかっている場合)、特定の値に監視を追加できます。単にインデックス演算子を使用してください。
内部にAttribsという名前の配列があり、内部にAttribという名前の配列がある、currentという名前の配列の場合、26桁目を配置する必要がある場合は、次のようになります。
((*((*current).Attribs)).Attrib)[26]
オフセットを使用することもできます
((*((*current).Attribs)).Attrib)+25
次の25個の要素が表示されます。(私はVS2008を使用していますが、これは最大25要素しか表示しません)。