これは最近の問題であり、別の2台のコンピューターで発生するような奇妙な気分です。Visual C++ 2010は、デバッグ時にstd :: string値の表示を拒否します。ショー<Bad Ptr>
STLからのstd :: stringの値をデバッグして見てみると、値として表示されます。それは、そのサイズは15であり、容量はいくらか歪んだ膨大な数であると言います。
配列の値そのものがすべてCXX0030と表示されます。Error:式を評価できません。
これは非常にイライラしています。私は文字列のc_strを呼び出してchar *に代入するか、必要に応じてウォッチ式を使用すると、デバッグ中でも文字列値にアクセスできますが、非常に退屈で、複雑な問題を3日間直接デバッグするとき
他のSTLコンテナの内容はうまく表示されます。
これは2台の異なるコンピュータ上の複数のプロジェクトで発生します。私はすべてのデバッグオプションがプロジェクトに設定されていると確信しています。最適化が行われず、確実にデバッグ情報が生成されます。
私たちは、このエラーが発生したいくつかのコンパイルのコードを必要とするこの質問に答えるために。 –
これは何に関係なくすべてのコードで発生します。 std :: stringを使用している場合、デバッガにはと表示されます。 これは私のプロジェクト構成に何らかの問題があり、どこかで最適化が有効になっているか、デバッグシンボルが正しく読み込まれていません。 私はGoogleで検索していますが、答えはまだ見つかりませんでした。 また、より複雑なタイプを簡単にデバッグ可能にするためのデータを視覚化するデバッグであるautoexp.datについても知りました。私はautoexp.datが何とか小さな文字列の最適化を行い、すべての場合に適切に表示すると思います。もう少し詳しく見ていきます。 –
iseletsky
const char * test = str.c_str();を使用できます。このステートメントの後に、デバッガが表示する値が使用可能になります。 –