Delphiでこれまでと同じようなケースが見られました。私の質問は次のとおりです。リリースまたはデバッグのために最適化の有無にかかわらずコンパイルしていますか?
私が尋ねるのは、デバッグセッション中に、デバッガによれば、逆の実行をしているような4-5行のコードで構成された小さな手順を発見したからです。
は基本的に、次のコードタイプで:理由はラインは副作用がなかったということであった
procedure Test;
begin start -+
Line1; | +-> here -+
Line2; | +-> here -+ |
Line3; | +-> here -+ |
line4; +-> here -+ |
end; +-> end
:
procedure Test;
begin
Line1;
Line2;
Line3;
line4;
end;
実行順序、デバッガによれば、このましたコンパイラはコードを書き換えてコードを「最適化」し、コードを逆順に完全に実行するように並べ替えます。
実際には実行されているスロー・ステートメントがありますが、コンパイラはこれを問題のあるものとして表示します。なぜなら、コードを再配置するために、2つのスロー・ステートメントは実際は実行可能コードとして一度発行されますか?
メモ:私はこれがVisual Studioのやり方であることを知っている理由はありませんが、あなたのビデオを見るときに私の頭に浮かんだことでした。
+1です。 – GenericTypeTea
どのバージョンのVS?最新のサービスパックを適用していますか? –
VS2008 +最新サービスパック –