DebuggableAttribute.DebuggingModes Wyliczenie

Definicja

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
DebuggableAttribute.DebuggingModes
Atrybuty

Pola

Default 1

Instruuje kompilator just in time (JIT), aby używał domyślnego zachowania, który obejmuje włączanie optymalizacji, wyłączanie obsługi funkcji Edytuj i Kontynuuj oraz używanie punktów sekwencji przechowywania symboli, jeśli istnieje. Począwszy od .NET Framework w wersji 2.0 informacje o śledzeniu JIT, przesunięcie Microsoft języka 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ą zmiana kolejności 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ą (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) 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 dotyczące śledzenia JIT są zawsze generowane, a ta flaga ma taki sam efekt jak Default, z wyjątkiem tego, że ustawia IsJITTrackingEnabled właściwość na false. Jednak ze względu na to, że śledzenie JIT jest zawsze włączone, wartość właściwości jest ignorowana w wersji 2.0 lub nowszej.

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łączenia ś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
Domyślny Śledzenie włączone optymalizacji JIT
DisableOptimizations Śledzenie włączone optymalizacji JIT
Domyślne | DisableOptimizations Śledzenie, optymalizacja JIT jest wyłączona

Punkty sekwencji są używane do wskazywania lokalizacji w kodzie języka pośredniego Microsoft (MSIL), do którego użytkownik debugera oczekuje, że będzie mógł odwoływać się do unikatowego punktu przerwania, 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 MSILnop" . 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.

Dotyczy