-
06-09-2019 - |
質問
私は、Visual Studio 2005で大規模なプロジェクトの一部をデバッグ、および線でコード行をステップ実行しています。
int speed = this->values.speed;
int ref = this->values.ref_speed;
最初の行過ぎステッピング後、values.speedは61の値を有するが、いくつかの理由のために、速度が第2ライン後の値58が割り当てられて取得され、values.ref_speedは58の値を有するが、REFが割り当てられます値は30。
一時停止した場合、、あなたは元の値が、それぞれ実際61と58であることがわかりますが、保存されたばかりの値が異なっています。
この動作を引き起こしているか?
解決
値の構造体の定義はヘッダファイルに変更してしまったし、すべてのオブジェクトファイルを再コンパイル持っていない場合は、
これが発生する可能性があります。そして、このファイルの構造の「マップ」あなたのコードは、コードの残りのと一致しない場合があります使用しています。これは、変数の一つが、他の値を有するように見える理由を説明することができます。
またはVisual Studio .pdbファイルが何らかの理由で更新されませんでした、およびVisual Studioは、変数の古い場所で募集しています。
他のヒント
クレイジー。 ?
- あなたは、名前も(>あなたはこれを経由してメンバーを参照している理由を説明するだろう)の値であるthis->値と同じ型のローカル変数を持っている任意のチャンスあなたは、デバッグまたはリリースモードでこれをやっていますか?あなたは、または最適化にしてリリースモードでそれをやっている場合、コンパイラは、より高いパフォーマンスのために物事を並べ替えていること、そしてそれは奇妙な結果につながることができます。これは何かが実際の実行で間違っていることを意味するものではありませんが、ステップスルーして混乱することができます。
所属していません StackOverflow