DebuggableAttribute.DebuggingModes Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa tryb debugowania dla kompilatora just in time (JIT).
To wyliczenie obsługuje bitową kombinację jego wartości składowych.
public: enum class DebuggableAttribute::DebuggingModes
[System.Flags]
public enum DebuggableAttribute.DebuggingModes
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum DebuggableAttribute.DebuggingModes
[<System.Flags>]
type DebuggableAttribute.DebuggingModes =
[<System.Flags>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DebuggableAttribute.DebuggingModes =
Public Enum DebuggableAttribute.DebuggingModes
- Dziedziczenie
- Atrybuty
Pola
Default | 1 | Instruuje kompilator just in time (JIT), aby używał domyślnego zachowania, w tym włączania optymalizacji, wyłączania obsługi funkcji Edytuj i Kontynuuj oraz używania punktów sekwencji przechowywania symboli, jeśli są obecne. Począwszy od .NET Framework w wersji 2.0, informacje o śledzeniu JIT, przesunięcie języka microsoft pośredniego (MSIL) na przesunięcie kodu natywnego w metodzie jest zawsze generowane. |
DisableOptimizations | 256 | Wyłącz optymalizacje wykonywane przez kompilator, aby plik wyjściowy był mniejszy, szybszy i bardziej wydajny. Optymalizacje powodują ponowne rozmieszczenie kodu w pliku wyjściowym, co może utrudnić debugowanie. Zazwyczaj optymalizacja powinna być wyłączona podczas debugowania. W wersjach 2.0 lub nowszych połącz tę wartość z wartością Domyślną (wartość domyślna | DisableOptimizations) w celu włączenia śledzenia JIT i wyłączenia optymalizacji. |
EnableEditAndContinue | 4 | Włącz edycję i kontynuuj. Edytowanie i kontynuowanie umożliwia wprowadzanie zmian w kodzie źródłowym, gdy program jest w trybie przerwania. Możliwość edytowania i kontynuowania jest zależna od kompilatora. |
IgnoreSymbolStoreSequencePoints | 2 | Użyj niejawnych punktów sekwencji MSIL, a nie punktów sekwencji bazy danych programu (PDB). Informacje symboliczne zwykle zawierają co najmniej jedno przesunięcie języka pośredniego (MSIL) firmy Microsoft dla każdego wiersza źródłowego. Gdy kompilator just in time (JIT) ma skompilować metodę, zwraca się do usług profilowania o listę przesunięć MSIL, które powinny zostać zachowane. Te przesunięcia MSIL są nazywane punktami sekwencji. |
None | 0 | Począwszy od .NET Framework wersji 2.0, informacje o śledzeniu JIT są zawsze generowane, a ta flaga ma taki sam efekt jak Default, z wyjątkiem tego, że ustawia IsJITTrackingEnabled właściwość na Należy pamiętać, None że w przeciwieństwie do DisableOptimizations flagi nie można użyć flagi do wyłączania optymalizacji JIT. |
Uwagi
Wyliczenie DebuggableAttribute.DebuggingModes określa sposób śledzenia informacji ważnych dla debugera podczas generowania kodu. Te informacje pomagają debugerowi zapewnić bogate środowisko debugowania. W przeciwieństwie do .NET Framework w wersji 1.1, wersje 2.0 lub nowsze nie umożliwiają wyłączania śledzenia przez kompilator just in time (JIT). Śledzenie JIT jest zawsze włączone dla plików możliwych do debugowania. W wersji 2.0 lub nowszej wartości wyliczenia mają następujący efekt.
Tryb debugowania | Wynik |
---|---|
Brak | Śledzenie włączone optymalizacji JIT |
Default | Śledzenie włączone optymalizacji JIT |
DisableOptimizations | Śledzenie włączone optymalizacji JIT |
Wartość domyślna | DisableOptimizations | Śledzenie, optymalizacja JIT jest wyłączona |
Punkty sekwencji służą do wskazywania lokalizacji w kodzie języka pośredniego firmy Microsoft (MSIL), do którego oczekuje się, że użytkownik debugera będzie mógł odwoływać się do unikatowo, na przykład do ustawiania punktu przerwania. Kompilator JIT zapewnia, że nie kompiluje MSIL w dwóch różnych punktach sekwencji w jednej instrukcji natywnej. Domyślnie kompilator JIT sprawdza magazyn symboli w pliku bazy danych programu (PDB) dla listy dodatkowych punktów sekwencji. Jednak ładowanie pliku PDB wymaga, aby plik był dostępny i ma negatywny wpływ na wydajność. Począwszy od wersji 2.0, kompilatory mogą emitować "niejawne punkty sekwencji" w strumieniu kodu MSIL za pomocą instrukcji MSIL.nop"
Takie kompilatory powinny ustawić flagę IgnoreSymbolStoreSequencePoints
, aby powiadomić środowisko uruchomieniowe języka wspólnego, aby nie załadować pliku PDB.
Uwaga
Ta wyliczenie jest używana głównie przez deweloperów języków. Zwykle nie jest on używany w tworzeniu aplikacji. Środowiska programistyczne są używane DebuggableAttribute.DebuggingModes na podstawie parametrów kompilatora, takich jak /debug i /optimize.