DebuggableAttribute.DebuggingModes Wyliczenie

Definicja

Określa tryb debugowania dla kompilatora just-in-Time (JIT).Specifies the debugging mode for the just-in-time (JIT) compiler.

To wyliczenie ma atrybut FlagsAttribute zezwalający na 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

Powoduje, że kompilator just-in-Time (JIT) używa swojego domyślnego zachowania, które obejmuje włączenie optymalizacji, wyłączenie obsługi Edytuj i Kontynuuj oraz używanie punktów sekwencji magazynu symboli, jeśli istnieją.Instructs the just-in-time (JIT) compiler to use its default behavior, which includes enabling optimizations, disabling Edit and Continue support, and using symbol store sequence points if present. Począwszy od .NET Framework w wersji 2,0, informacje o śledzeniu JIT, przesunięcie języka pośredniego firmy Microsoft (MSIL) do przesunięcia kodu natywnego w ramach metody jest zawsze generowane.Starting with the .NET Framework version 2.0, JIT tracking information, the Microsoft intermediate language (MSIL) offset to the native-code offset within a method, is always generated.

DisableOptimizations 256

Wyłącz optymalizacje wykonywane przez kompilator, aby plik wyjściowy był mniejszy, szybszy i bardziej wydajny.Disable optimizations performed by the compiler to make your output file smaller, faster, and more efficient. Optymalizacje powodują zmianę kolejności kodu w pliku wyjściowym, co może utrudnić debugowanie.Optimizations result in code rearrangement in the output file, which can make debugging difficult. Zazwyczaj Optymalizacja powinna być wyłączona podczas debugowania.Typically optimization should be disabled while debugging. W wersji 2,0 lub nowszej Połącz tę wartość z wartością domyślną (domyślnie | DisableOptimizations), aby włączyć śledzenie JIT i wyłączyć optymalizacje.In versions 2.0 or later, combine this value with Default (Default | DisableOptimizations) to enable JIT tracking and disable optimizations.

EnableEditAndContinue 4

Włącz opcję Edytuj i Kontynuuj.Enable edit and continue. Edytuj i Kontynuuj umożliwia wprowadzanie zmian w kodzie źródłowym, gdy program jest w trybie przerwania.Edit and continue enables you to make changes to your source code while your program is in break mode. Możliwość edycji i kontynuowania jest zależna od kompilatora.The ability to edit and continue is compiler dependent.

IgnoreSymbolStoreSequencePoints 2

Użyj niejawnych punktów sekwencji MSIL, a nie punktów sekwencji bazy danych programu (PDB).Use the implicit MSIL sequence points, not the program database (PDB) sequence points. Informacje symboliczne zwykle obejmują co najmniej jedno przesunięcie języka pośredniego firmy Microsoft (MSIL) dla każdej linii źródłowej.The symbolic information normally includes at least one Microsoft intermediate language (MSIL) offset for each source line. Gdy kompilator just in Time (JIT) ma kompilować metodę, prosi usługi profilowania o listę przesunięć MSIL, które powinny zostać zachowane.When the just-in-time (JIT) compiler is about to compile a method, it asks the profiling services for a list of MSIL offsets that should be preserved. Te przesunięcia MSIL są nazywane punktami sekwencji.These MSIL offsets are called sequence points.

None 0

Począwszy od .NET Framework w wersji 2,0 informacje o śledzeniu JIT są zawsze generowane, a ta flaga ma ten sam skutek Default , z tą różnicą, że ustawia IsJITTrackingEnabled Właściwość na false .Starting with the .NET Framework version 2.0, JIT tracking information is always generated, and this flag has the same effect as Default, except that it sets the IsJITTrackingEnabled property to 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.However, because JIT tracking is always enabled, the property value is ignored in version 2.0 or later.

Należy pamiętać, że w przeciwieństwie do DisableOptimizations flagi None flaga nie może być używana do wyłączania optymalizacji JIT.Note that, unlike the DisableOptimizations flag, the None flag cannot be used to disable JIT optimizations.

Uwagi

DebuggableAttribute.DebuggingModesWyliczenie określa sposób, w jaki środowisko uruchomieniowe śledzi informacje istotne dla debugera podczas generowania kodu.The DebuggableAttribute.DebuggingModes enumeration specifies how the runtime is to track information important to the debugger during code generation. Te informacje pomagają debugerowi zapewnić bogate środowisko debugowania.This information helps the debugger provide a rich debugging experience. W przeciwieństwie do .NET Framework wersja 1,1, wersje 2,0 lub nowsze nie pozwalają na wyłączenie śledzenia przez kompilator just-in-Time (JIT).Unlike the .NET Framework version 1.1, versions 2.0 or later do not allow you to turn off tracking by the just-in-time (JIT) compiler. Śledzenie JIT jest zawsze włączone dla plików możliwością debugowania.JIT tracking is always enabled for debuggable files. W wersji 2,0 i nowszych wartości wyliczenia mają następujący skutek.In version 2.0 and later, the enumeration values have the following effect.

Tryb debugowaniaDebugging mode WynikResult
BrakNone Śledzenie włączonego optymalizacji JITTracking on, JIT optimizations enabled
DomyślneDefault Śledzenie włączonego optymalizacji JITTracking on, JIT optimizations enabled
DisableOptimizationsDisableOptimizations Śledzenie włączonego optymalizacji JITTracking on, JIT optimizations enabled
Domyślne | DisableOptimizationsDefault | DisableOptimizations Śledzenie, optymalizacje JIT wyłączoneTracking on, JIT optimizations disabled

Punkty sekwencji są używane do wskazywania lokalizacji w kodzie języka pośredniego firmy Microsoft (MSIL), które użytkownik debugera oczekuje na unikatową odwołanie, na przykład w celu ustawienia punktu przerwania.Sequence points are used to indicate locations in the Microsoft intermediate language (MSIL) code that a debugger user expects to be able to refer to uniquely, such as for setting a breakpoint. Kompilator JIT gwarantuje, że nie kompiluje MSIL w dwóch różnych punktach sekwencji do jednej instrukcji macierzystej.The JIT compiler ensures it does not compile the MSIL at two different sequence points into a single native instruction. Domyślnie kompilator JIT bada magazyn symboli w pliku bazy danych programu (PDB), aby uzyskać listę dodatkowych punktów sekwencji.By default, the JIT compiler examines the symbol store in the program database (PDB) file for a list of additional sequence points. Jednak załadowanie pliku PDB wymaga, aby plik był dostępny i ma negatywny wpływ na wydajność.However, loading the PDB file requires that the file be available and has a negative performance impact. Począwszy od wersji 2,0, kompilatory mogą emitować "niejawne punkty sekwencji" w strumieniu kodu MSIL przy użyciu instrukcji MSIL nop" .Starting with version 2.0, compilers can emit "implicit sequence points" in the MSIL code stream through the use of MSIL "nop" instructions. Takie kompilatory powinny ustawiać IgnoreSymbolStoreSequencePoints flagę w celu powiadomienia środowiska uruchomieniowego języka wspólnego o konieczności załadowania pliku PDB.Such compilers should set the IgnoreSymbolStoreSequencePoints flag to notify the common language runtime to not load the PDB file.

Uwaga

To wyliczenie jest używane głównie przez deweloperów języka.This enumeration is primarily used by language developers. Zwykle nie jest używany podczas tworzenia aplikacji.It is generally not used in application development. Środowiska deweloperskie używane na DebuggableAttribute.DebuggingModes podstawie parametrów kompilatora, takich jak /Debug i /Optimize.Development environments use DebuggableAttribute.DebuggingModes based on compiler parameters such as /debug and /optimize.

Dotyczy