2011-12-28 6 views
5

VC++ 2010デバッガのベクタにアクセスしようとすると、利用可能な要素は "_M_start"、 "_M_end"、 "_M_end_of_storage"のみです。例のスクリーンショットを次のようにVisual C++ 2010ベクタデバッグ - 内容が表示されない

Vector debug issue example

を私はしばらくの間は、バックベクトルの実際の内容にアクセスできることを覚えて、これはケースされていない長い時間のために(私が住んでいることができましたそれとしばらくの間)。私が間違ってオフにした特定の設定や機能はありますか?何か完全に欠けていますか?

+2

STLportまたはMS STLを使用していますか? – NirMH

+1

VC++のインストールが失敗しているか、VS2010用に再コンパイルされていないVS2010以外のSTLコードを使用しています –

+0

まずはデバッグビルドですか、デバッグシンボルがありますか?次に、ソリューション* .sdfファイルを削除してインテリセンスなどをリセットすることができます。 – AJG85

答えて

2

VS IDEは、Microsoftが所有するSTLコンテナのデバッグ情報を表示できないことが知られています。私はSTLPortライブラリを使用している間、同じ問題を抱えていました。

でも、この時計を使用してベクターのコンテンツを探索することはできますが、もっと面倒です。 _M_startメンバ上で配列のインデックスを作成する方法を使用すると、ベクトルの要素にアクセスできます。時計に追加

meshEdges._M_start[0] 

これで、ベクターの最初の要素の内容を確認できます。 ベクトルの要素全体を簡単に探索/表示する方法はありません。それを自分で繰り返す必要がありますが、それはまだ何かです。

このリンクhttp://umairsaeed.com/2009/11/23/visualizing-stlport-data-structures-in-visual-studio-debuggerで詳細を読むことができます。上記の「知識」をVS IDE Watchコンポーネントに追加する方法について説明します。私はあなたのVS2010コンパイラに最新のものであるかどうかはわかりませんが、自分自身を調べることができます。

+0

ありがとう、私は使用しているSDKが使用するSTLコンテナのための特定のautoexpビジュアライザーを調べるかもしれません。いずれにしても、あなたが言及したように、ベクトルをデバッグするための他の(面倒ではありますが)メソッドがあります。 –

関連する問題