0

Intel コンパイラとビジュアル スタジオを使用していますが、マップ内の値をデバッグできないようです。マップのサイズを示す簡単なプレビューが表示されますが、要素は「(エラー)」としてのみ表示されます。簡単な例で説明します。単一のエントリ myMapVariable[6]=1 でマップを生成しました。 ;

マウスオーバーすると、この「myMapVariable 1」が表示され、ウォッチウィンドウで同じことが表示され、プラスを展開すると、name = "(error)" および value = 0 (これは間違っています) という単一の子エントリが表示されます。

autoexp.dat デバッグ ファイルに、[raw members] という子の下にある raw メンバー変数を示す行を追加しました。助けなしでこれをさらに掘り下げる能力の限界に達したので、ここで誰かが洞察を提供できるかどうか尋ねます。

4

3 に答える 3

1

ほとんどの場合、積極的な最適化設定を使用しています。少なくともあなたのスクリーンショットはその種のものの典型です。その場合、デバッガーはアクティブにホット値をレジスターに詰め込んでおり、停止した時点で、マップ全体を適切に視覚化するために必要な値は既に破棄され、十分な他の何かによって上書きされている可能性があります(たとえば、現在のノードへのポインタなど)。高品質の最適化でよく知られているIntelC++は、VC ++よりもこの種のことを頻繁に行っていると思います(ただし、後者でも十分な頻度でこのようなことを行っています)。

デバッグ構成(オプティマイザーを無効にする)でプロジェクトを再コンパイルすることを検討し、それが役立つかどうかを確認します。

于 2009-07-09T06:08:43.233 に答える
0

私の唯一の提案は、マップが初期化され、スコープ内にあることを確認することです。そうでなければ、私はよくわかりません、私はこれを見たことがありませんが、私は今VS2008を使用しています。

于 2009-07-09T05:59:37.760 に答える
0

Intel を使用してこの問題を解決できたことは一度もありませんが、最新のビジュアル スタジオ コンパイラ VS2010 に移行したため、これはもはや問題ではありません。未回答の質問を放置したくないので、これを回答としてマークしています。

于 2010-12-16T00:38:57.213 に答える