디버거 뷰 응용 프로그램 샘플
업데이트: 2007년 11월
이 샘플에서는 디버그 창에서 클래스를 보는 방법을 변경하는 기능을 보여 줍니다. 이 기능은 Microsoft Visual Studio 2005에 새로 도입된 기능입니다. DebuggerDisplayAttribute와 같은 새 특성을 클래스와 해당 멤버에 적용하면 지역 디버그 창에서 해당 형식에 대해 값, 형식 및 이름 열이 표시되는 방법은 물론 값을 볼 때 값이 표시되는지 숨겨지는지 확장되는지 여부를 제어할 수 있습니다. 이 샘플은 현재 Microsoft Visual C# 2005에서만 사용할 수 있습니다.
샘플 사용에 대한 자세한 내용은 다음 항목을 참조하십시오.
이 샘플에는 다음 표에서처럼 디버거 특성을 포함하는 세 클래스에 대한 소스 파일과 그렇지 않은 소스 파일이 포함되어 있습니다.
디버거 특성이 있는 파일 |
디버거 특성이 없는 파일 |
---|---|
DebugAddress.cs |
NonDebugAddress.cs |
DebugCustomer.cs |
NonDebugCustomer.cs |
DebugCustomerName.cs |
NonDebugCustomerName.cs |
DebuggerViewsExample.cs 파일에는 콘솔 응용 프로그램의 진입점이 포함되어 있으며 두 파일 집합 모두에서 사용됩니다. 샘플을 실행하려면 디버그 버전(DebugAddress.cs, DebugCustomer.cs 및 DebugCustomerName.cs)에서 코드의 주석 처리를 제거합니다.
명령 프롬프트를 사용하여 샘플을 빌드하려면
명령 프롬프트 창을 열고 DebuggerViewsCS 디렉터리의 \CS 하위 디렉터리로 이동합니다. 필요한 설정 및 SDK 명령 프롬프트에 대한 자세한 내용은 방법: 샘플 설정 변경을 참조하십시오.
명령줄에서 msbuild DebuggerViewsCS.sln을 입력합니다.
참고: 이 샘플에서는 Visual Studio의 기능을 보여 줍니다. 출력을 보려면 샘플을 Visual Studio의 디버깅 환경에서 시작하고 실행해야 합니다.
Visual Studio를 사용하여 샘플을 빌드하려면
Windows 탐색기를 열고 DebuggerViewsCS 디렉터리의 \CS 하위 디렉터리로 이동합니다.
DebuggerViewsCS.sln을 두 번 클릭하여 Visual Studio 2005에서 해당 파일을 엽니다.
빌드 메뉴에서 솔루션 빌드를 클릭합니다.
이 샘플을 실행하려면
Visual Studio의 보기 메뉴에서 솔루션 탐색기를 클릭합니다.
솔루션 탐색기 창에서 DebuggerViewsExample.cs를 두 번 클릭하여 Visual Studio 2005에서 해당 파일을 엽니다.
프로젝트 메뉴에서 모든 파일 표시를 클릭합니다.
다음과 같이 GetCustomers 메서드가 Customer 형식의 변수를 인스턴스화하는 줄에 중단점을 삽입합니다(F9 키를 누름).
Customer c = new Customer(cn, Address.GetAddressById(customerAddresses, cn.Id));
F5 키를 눌러 Visual Studio 2005 디버깅 환경에서 샘플 응용 프로그램을 시작하고 실행합니다.
응용 프로그램이 중단점에서 중단하면 F10 키를 눌러 다음 코드 줄로 한 단계 실행합니다.
응용 프로그램의 속성, 컬렉션 및 기타 개체의 계층 구조를 확장하여 지역 창에서 현재 값을 확인합니다. 지역 창을 표시하려면 디버그 메뉴에서 창을 클릭한 다음 로컬을 클릭합니다.
디버그 메뉴에서 디버깅 중지를 클릭하거나, Shift+F5를 누르거나, 디버깅 도구 모음에서 아이콘을 클릭하여 코드 실행을 중지합니다.
이름이 Debug로 시작하는 세 개의 파일에서 코드의 주석 처리를 제거합니다. 이름이 NonDebug로 시작하는 세 개의 파일에서 코드를 주석 처리하거나, 솔루션 탐색기 창에서 해당 파일 세 개를 선택하고 마우스 오른쪽 단추로 클릭한 다음 프로젝트에서 제외를 클릭합니다.
동일한 중단점이 설정된 상태로 디버그 메뉴에서 시작을 선택합니다. 응용 프로그램이 중단되면 지역 창 값 열의 내용을 자세히 살펴봅니다. 이러한 열에는 디버깅 특성이 제공하는 추가 정보가 포함되어 있습니다.
설명
디버깅 특성 사용 예제를 제공하기 위해 DebugCustomer.cs 파일에는 CustomerName 클래스에 대해 다음과 같은 DebuggerDisplay 특성이 포함되어 있습니다.
[DebuggerDisplay("{(FirstName == null) ? \"\":FirstName} {LastName} ==> (Customer ID = {Id})")]
디버깅할 때 이 특성은 지역 창에 다음 값을 표시합니다. 이름 cn은 CustomerName 개체의 인스턴스입니다.
이름 |
값 |
형식 |
---|---|---|
cn |
"Sally" "HighBridge" ==> (Customer ID = 12345) |
Microsoft.Samples.CustomerName |
특성이 없으면 지역 창에는 다음 정보가 표시됩니다.
이름 |
값 |
형식 |
---|---|---|
cn |
{Microsoft.Samples.CustomerName} |
Microsoft.Samples.CustomerName |