DebuggableAttribute.DebuggingModes 열거형

정의

JIT(Just-In-Time) 컴파일러에 대한 디버깅 모드를 지정합니다.

이 열거형은 멤버 값의 비트 조합을 지원합니다.

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
상속
DebuggableAttribute.DebuggingModes
특성

필드

Name Description
None 0

.NET Framework 버전 2.0부터 JIT 추적 정보가 항상 생성되며, 이 플래그는 IsJITTrackingEnabled 속성을 false 설정한다는 점을 제외하고 Default 같은 효과를 줍니다. 그러나 JIT 추적은 항상 사용하도록 설정되므로 버전 2.0 이상에서는 속성 값이 무시됩니다.

플래그와 DisableOptimizations 달리 JIT 최적화를 None 사용하지 않도록 설정하는 데 플래그를 사용할 수 없습니다.

Default 1

JIT(Just-In-Time) 컴파일러에 최적화 사용, 편집 및 계속 지원 사용 안 함, 기호 저장소 시퀀스 지점 사용(있는 경우) 등의 기본 동작을 사용하도록 지시합니다. .NET Framework 버전 2.0부터 JIT 추적 정보, 메서드 내의 네이티브 코드 오프셋에 대한 MSIL(Microsoft 중간 언어) 오프셋이 항상 생성됩니다.

IgnoreSymbolStoreSequencePoints 2

PDB(프로그램 데이터베이스) 시퀀스 지점이 아닌 암시적 MSIL 시퀀스 지점을 사용합니다. 기호화된 정보에는 일반적으로 각 소스 줄에 대해 하나 이상의 MSIL(Microsoft 중간 언어) 오프셋이 포함됩니다. JIT(Just-In-Time) 컴파일러가 메서드를 컴파일하려고 할 때 프로파일링 서비스에 유지되어야 하는 MSIL 오프셋 목록을 요청합니다. 이러한 MSIL 오프셋을 시퀀스 포인트라고 합니다.

EnableEditAndContinue 4

편집을 사용하도록 설정하고 계속합니다. 편집하고 계속하면 프로그램이 중단 모드에 있는 동안 소스 코드를 변경할 수 있습니다. 편집하고 계속하는 기능은 컴파일러에 따라 달라집니다.

DisableOptimizations 256

컴파일러에서 수행하는 최적화를 사용하지 않도록 설정하여 출력 파일을 더 작고, 더 빠르고, 더 효율적으로 만듭니다. 최적화로 인해 출력 파일에서 코드가 다시 정렬되어 디버깅이 어려워질 수 있습니다. 일반적으로 디버깅하는 동안 최적화를 사용하지 않도록 설정해야 합니다. 버전 2.0 이상에서는 이 값을 기본값과 결합합니다(기본값 | DisableOptimizations) - JIT 추적을 사용하도록 설정하고 최적화를 사용하지 않도록 설정합니다.

설명

이 열거형은 DebuggableAttribute.DebuggingModes 코드 생성 중에 런타임이 디버거에 중요한 정보를 추적하는 방법을 지정합니다. 이 정보는 디버거가 풍부한 디버깅 환경을 제공하는 데 도움이 됩니다. .NET Framework 버전 1.1과 달리 버전 2.0 이상에서는 JIT(Just-In-Time) 컴파일러에서 추적을 해제할 수 없습니다. JIT 추적은 항상 디버깅 가능한 파일에 대해 사용하도록 설정됩니다. 버전 2.0 이상에서는 열거형 값이 다음과 같이 적용됩니다.

디버깅 모드 결과
None 추적, JIT 최적화 사용
기본값 추적, JIT 최적화 사용
DisableOptimizations 추적, JIT 최적화 사용
기본값 | DisableOptimizations 추적, JIT 최적화 사용 안 함

시퀀스 지점은 디버거 사용자가 중단점 설정과 같이 고유하게 참조할 수 있어야 하는 MSIL(Microsoft 중간 언어) 코드의 위치를 나타내는 데 사용됩니다. JIT 컴파일러는 서로 다른 두 시퀀스 지점에서 MSIL을 단일 네이티브 명령으로 컴파일하지 않도록 합니다. 기본적으로 JIT 컴파일러는 PDB(프로그램 데이터베이스) 파일의 기호 저장소에서 추가 시퀀스 지점 목록을 검사합니다. 그러나 PDB 파일을 로드하려면 파일을 사용할 수 있어야 하며 성능에 부정적인 영향을 미칩니다. 버전 2.0부터 컴파일러는 MSIL "nop" 지침을 사용하여 MSIL 코드 스트림에서 "암시적 시퀀스 지점"을 내보낼 수 있습니다. 이러한 컴파일러는 PDB 파일을 로드하지 않도록 공용 언어 런타임에 알리는 플래그를 설정 IgnoreSymbolStoreSequencePoints 해야 합니다.

메모

이 열거형은 주로 언어 개발자가 사용합니다. 일반적으로 애플리케이션 개발에는 사용되지 않습니다. 개발 환경은 /debug/optimize와 같은 컴파일러 매개 변수를 기반으로 사용합니다DebuggableAttribute.DebuggingModes.

적용 대상