2013-03-31 24 views
7

Czy jest jakiś sposób, aby zobaczyć skompilowany kod wyjściowy z samego studia wizualnego. Wiem, że możemy użyć oprogramowania reflektorowego i zobaczyć kod. ale chcę tylko zobaczyć kod kompilatora podczas kodowania w visual studio. więc mogę zdecydować, jakie jest najlepsze podejście do kodowania dla określonego zadania, patrząc na kod wyjściowy.Visual Studio Skompilowany kod

Uwaga: Obsługa języka C# wystarczy dla mnie.

Aktualizacja:


chcę zobaczyć Intermediate Language (IL) wyjście kodu C#.

+1

Dowolny określony język/wyjście kompilatora? – Oded

+0

Co masz na myśli przez skompilowany kod? Kod maszynowy, kod po wstępnym przetwarzaniu, coś jeszcze? – Tushar

+0

Wsparcie dla C# byłoby dla mnie wystarczające –

Odpowiedz

13

Zakładając, że nie mówimy o językach .NET (C#, VB.NET, C# itp ...), można użyć disassembly window:

Okno Demontaż pokazuje kod montaż odpowiadający instrukcji stworzonych przez kompilator. Jeśli debugujesz kod zarządzany, te instrukcje montażu odpowiadają natywnemu kodowi utworzonemu przez kompilator Just-in-Time (JIT), a nie pośredni język Microsoft (MSIL) generowany przez kompilator Visual Studio.


Jeśli jednak mówimy o wyświetlaniu IL dla języków .NET - ILDASM może pokazać ci to, podobnie jak większość deasembler (takie jak reflektor). Wiele z nich pokaże ci domyślnie interpretację języka C#/VB.NET, ale możesz zawsze wyświetlać IL bezpośrednio w widoku.

Niektóre z nich mają również dodatki/rozszerzenia Visual Studio, które pozwalają zobaczyć demontaż bezpośrednio w Visual Studio (Reflector i Resharper zrobią to).

+0

+1 dla reflektora i reweramatora –

+0

Zainstalowałem rozszerzenie Reflector 8 do Visual Studio 2013 Professional, ale nie pokazuje kodu CIL. Pokazuje kod C# importowanych pakietów. Być może możliwe jest wyświetlenie kodu CIL bezpośrednio w Visual Studio, ale nie mogę znaleźć tej opcji? –

+0

Czy jest jakiś sposób sprawdzenia, jak wygląda cukrzyca cukrowa po skompilowaniu? Na przykład: 'var n = 1' zostanie skompilowany w' int n = 1' lub 'obj? .prop' zastosowany w' if (obj! = Null)? obj.prop: null' –

Powiązane problemy