지원되는 코드 변경(C#)
편집하며 계속하기에서는 메서드 본문 내의 코드 변경 형식 대부분을 처리합니다.그러나 메서드 본문 바깥의 변경 내용 대부분과 메서드 본문 내의 일부 변경 내용은 디버깅 과정에서 적용할 수 없습니다.이와 같이 지원되지 않는 변경 내용을 적용하려면 디버깅을 중지하고 새 버전의 코드를 사용하여 다시 시작해야 합니다.
디버깅 세션 중에 C# 코드에 적용할 수 없는 변경 내용은 다음과 같습니다.
현재 문 또는 다른 모든 활성 문에 대한 변경
활성 문에는 호출 스택의 함수에서 현재 문을 실행하기 위해 호출된 모든 문이 포함됩니다.
현재 문은 소스 창에서 노란색 배경으로 표시됩니다.다른 활성 문은 배경이 회색으로 표시되고 이러한 문은 읽기 전용입니다.이와 같은 기본 색상은 옵션 대화 상자에서 변경할 수 있습니다.
다음을 비롯한 전역 기호에 대한 변경
새 형식 추가
형식에 메서드 추가
형식의 시그니처 변경
형식에 필드, 이벤트 또는 속성 추가
무명 메서드 또는 무명 메서드가 포함된 메서드 편집.이러한 메서드는 배경이 회색으로 표시됩니다.
새 무명 메서드 추가
속성 추가, 제거 또는 변경
using 지시문 추가, 제거 또는 변경
지역 변수 제거 또는 변경.지역 변수 추가는 허용됩니다.
활성 문 주위에 foreach, using 또는 lock 추가
yield return 또는 yield break 문이 포함된 메서드 수정
무명 메서드를 사용하여 초기화된 필드로 생성자 변경
안전하지 않은 코드
안전하지 않은 코드에 대한 변경에는 안전한 코드에 대한 변경과 동일한 제한 사항이 적용되고 한 가지 제한 사항이 추가로 더 적용됩니다.
- stackalloc 연산자가 포함된 메서드 안에 있는 안전하지 않은 코드에 대한 변경은 편집하며 계속하기에서 지원하지 않습니다.이는 활성 메서드에만 적용됩니다.디버깅할 때 현재 호출 스택에 있는 모든 함수가 활성 함수입니다.
예외
편집 하며 계속 하기 지원 변경 catch, finally,및 try 블록이 현재 호출 스택에 있는 메서드 같은 활성 메서드의 블록에에서 대 한 몇 가지 차이점이 있습니다.
호출 스택에 있는 가장 최근의 함수인 활성 함수에 대해 편집하며 계속하기는 다음 작업을 지원하지 않습니다.
추가 된 catch 또는 finally는 활성 문 주위의 블록.
여섯 단계 이상으로 중첩된 수준의 예외 처리기 추가
호출 스택에 있는 가장 최근의 함수가 아닌 활성 함수에 대해 편집하며 계속하기는 다음 작업을 지원하지 않습니다.
추가 된 catch, finally 또는 try는 활성 문 주위의 블록.
여섯 단계 이상으로 중첩된 수준의 예외 처리기 추가
내 코드를 변경 하는 try활성 문이 포함 된 블록입니다.
지원되지 않는 시나리오
다음과 같은 디버깅 시나리오에서는 편집하며 계속하기를 사용할 수 없습니다.
LINQ 코드 디버깅.자세한 내용은 Edit and Continue Not Supported for LINQ를 참조하십시오.
혼합 모드(네이티브/관리) 디버깅
SQL 디버깅
Dr. Watson 덤프디버깅
"처리되지 않은 예외에 대한 호출 스택 해제" 옵션을 선택하지 않은 상태에서 처리되지 않은 예외가 발생한 후에 코드 편집
포함된 런타임 응용 프로그램 디버깅
디버그 메뉴에서 시작을 선택하여 응용 프로그램을 실행하는 대신 연결 대상을 사용하여 응용 프로그램 디버깅
최적화된 코드 디버깅
대상이 64비트 응용 프로그램인 경우 관리 코드 디버깅.편집하며 계속하기를 사용하려면 대상을 x86으로 설정해야 합니다.(프로젝트속성, 컴파일 탭 고급 컴파일러 설정 합니다.)
빌드 오류가 발생하여 새 버전을 빌드하는데 실패한 후 이전 버전의 코드 디버깅