2

MS-Visual C++ 2010 (無料版) を使用してデバッグしている C コードがあります。コードでは、いくつかの変数が宣言され、括弧で定義されたローカル スコープ コード ブロック内で使用されます。
{... }

ただし、デバッガーのデバッグ中は、コード実行ポイントがコード ブロック内にある場合でも、このコード ブロック内で宣言されているすべての変数について、ウォッチ ウィンドウに値が表示されません。「エラー:シンボルが見つかりません」と表示されます。これは、このコードをデバッグしている間、私にとって非常にハンディキャップです。

そのような特定の変数の宣言を関数の先頭に移動すると、{}コード ブロックから削除することで、デバッガーはその値を適切に表示できます。

  1. この風変わりな行動の理由は何ですか?これは無料版が原因ですか?

  2. コードを変更せずに、一部のプロジェクト設定などを使用して、デバッガーのウォッチ ウィンドウでそのようなローカル コード ブロック スコープ変数の値を確認するにはどうすればよいですか?

4

1 に答える 1

2

この問題がどこにも対処されていないので、ここに返信します。

プロジェクトのプロパティ ページに移動し、C/C++ セクションの最適化プロパティを確認します。最適化がオンになっている場合、変数の一部が最適化されています。これが発生すると (非常によくあることですが)、検査する変数がないため、「symbol not found」というエラー メッセージが表示され、ローカルまたは自動ウィンドウに表示されません。Optimization プロパティを Disabled に変更し、再構築して、問題が解決するかどうかを確認します。おそらくそうなるでしょう。

プロジェクトにとって最適化が重要な場合、私はそれをオフにして開発を行いますが、定期的にテストしたいものに戻します。最適化をオンにすると何かが壊れる場合があります。その場合、最近変更した内容を把握しておく必要があります。そうしないと、問題を見つけるのが非常に難しくなるからです。

于 2011-09-20T18:21:03.713 に答える