2016-10-07 11 views
0

私はC#プロジェクトのリリースモードでデバッグ中に変数を見ることができませんでした。しかし、プロジェクト設定でDEBUGを有効にすると、ローカルの変数値を見ることができました。私はシンボル定義が生成されていることを知っていますが、リリースモードでデバッグするときに、デバッグとコンパイル時間とJIT最適化はどのように一緒になるのでしょうか?Release Mode(デバッグモードでのデバッグ)とDebug Mode(デバッグモード)の違いは何ですか?

答えて

0

最適化はコードを無害に変更するプロセスです。変数がリリース時に表示されるかどうかを特定することは非常に難しいです。最適化を実行するかどうかを指定します。たとえば、ここにこのコード:

int GetInt() 
{ 
    var a = 1; 
    var b = a; 
    var c = b; 
    return b; 
} 

はおそらく、JITに消えるだろうが、インライン化されるかにコンパイルされます:あなたはあなたが定義された変数が存在しない見たよう

int GetInt() {return 1;} 

。場合によっては、実際のソースのシンボルを生成することは可能ですが、場合によっては不可能で、逆コンパイルしてILを参照するまではわかりません。

関連する問題