2009-03-12 6 views
2

Visual Studioでデバッグしたことがあり、ステップバイステップのコードと異なるコードが実行されているようですか?ときには、ステップインしているファイルの空白のように見えますが、VSはとにかく何かを実行していますか?VSコードの実行とコードファイルの違い

ユーザーディレクトリの下のApplication Dataディレクトリで何かをクリアしてしまえば、これは何度か起こりました。しかし、私はそれが何だったのか覚えていないと思う誰かいくつかのアイデアを持っていた。

+0

次のような理由で、以下の理由3がありました。何らかの理由で、誤って使用しているように見えました。オブジェクトディレクトリを吹き飛ばして、ブームを起こし、魅力的に働きました。 – Adron

答えて

2

考えられる原因は4つあります。

理由1:実際には、コンパイル結果ではなく他のファイルを開始しました。実行ファイルへのパスは、プロジェクトプロパティの[デバッグ]ページで設定します。

理由2:最適化が有効です。この場合、コンパイラはコードの行だけを保存します。コンパイルされたコード情報は、一部のコードではなく他のコードでは保存されません。 「ステップオーバー」を押すと、実際にいくつかのステートメントを先にジャンプするか、いくつかの変数値にアクセスできないことがわかります。最適化をオフにするか、インタラクティブなデバッグからロギングに切り替えます。

理由3:プログラムデータベース(コンパイル済みコードへのコード行のバインディングを格納する.pdbファイル)は、コンパイル済みファイルと同期していません。 "Rebuild"プロジェクトは通常役に立ちます。

理由4:VSはプログラムデータベースを各コンパイルの別の場所に置くため、実行可能ファイルが存在するフォルダ内のプログラムデータベース(理由3を参照)が古くなっています。 .pdbファイルを配置するパスは、プロジェクトのリンカープロパティで設定します。

1

コードが最適化されている場合(プロジェクトプロパティ、ビルド、「最適化コード」)、実行されているコードはIDEのコードと必ずしも一致しません。これは、通常、リリースビルドをデバッグしようとした場合に発生します。しかし、そうでない場合があります。

1

実行中のプログラムにデバッガを接続しますか?もしそうなら、あなたはソースファイルを変更したかもしれないが、コードをコンパイルするのを忘れている可能性があります。私はときどきこれを行うだろうが、それは見つけるのはかなり簡単だ。

関連する問題