2012-03-05 4 views
9

Se eseguo una build di rilascio in VS, ma CON debugger. Quindi posso impostare i punti di interruzione e indagare sullo smontaggio del codice ottimizzato. Di solito, per vedere tutte le ottimizzazioni ho bisogno di eseguire SENZA un debugger collegato e disconnetterlo al processo in esecuzione.reprimere il carico del modulo (gestito solo)

Vuol deselezionando la "Sopprimere l'ottimizzazione JIT il carico del modulo (solo riuscito)" switch in Visual Studio è sufficiente a portare lo stesso risultato? Per "stesso risultato" intendo: stesse istruzioni macchina (ottimizzate) come avviando senza debugger allegato?

ho sentito il compilatore JIT sarebbe utilizzare solo TUTTE le opzioni di ottimizzazione, se l'assemblea era una build di rilascio e NO debugger è stato attaccato. Ora mi chiedo se questo interruttore potrebbe rendere più facile il mio debug/ispezione live?

+0

Perché non provare? – svick

+0

Perché non renderebbe nessuna regola chiara. – JGrand

+0

Ho provato e _seems_ a fare lo stesso. ma non so se si tratta di un comportamento definito. –

risposta

3

C'è una piccola differenza tra IL tra build DEBUG e RELEASE, quindi in questo caso si desidera utilizzare la build RELEASE (ad esempio tutte le chiamate Debug.XXX sono compilate in Release case).

Un-checking "Sopprimere l'ottimizzazione JIT il carico del modulo (gestito solo)" dovrebbe consentire JIT non fare ottimizzazioni come se nessun debugger. Non sono a conoscenza di differenze tra questi 2 casi.