프로그램을 배우기 시작한지 벌써 한 달이 지났습니다. 하면 할 수록 미궁에 빠져들고 문제를 해결하지 못하여 무수한 시간을 보내었습니다. 디버깅을 이용하면 된다는 것을 알면서도 그 방법을 모르기때문에, 학습 진도에 급급한 나머지 기본을 망각해 버렸습니다. 이제, 시작합니다~~~
이제 응용 프로그램이 만들어졌으며 빌드 오류가 해결되었습니다.다음에는 응용 프로그램이나 저장 프로시저를 제대로 실행할 수 없게 만드는 논리 오류를 해결해야 합니다.논리 오류는 개발 환경의 통합 디버깅 기능을 사용하여 해결할 수 있습니다.이러한 방법으로 프로시저 위치에서 중지, 메모리 및 레지스터 값 검사, 변수 변경, 메시지 트래픽 관찰, 코드의 작업 내용에 대한 세밀한 관찰 등을 수행할 수 있습니다.
Visual Studio 2010 디버거는 다음과 같은 기능이 추가되어 성능이 더욱 향상되었습니다.
중단점 창에서 검색하는 기능, 중단점을 레이블하는 기능, 중단점을 가져오고 내보내는 기능 및 네이티브 디버깅의 중단점에 조건 비교를 포함하는 중단점 향상입니다.
자세한 내용은 방법: 중단점 목록 검색, 방법: 중단점에 레이블 지정 및 방법: 중단점 가져오기 및 내보내기을 참조하십시오.
WPF 응용 프로그램에서 이벤트를 보는 데 사용할 수 있는 향상된 추적이 포함된 WPF디버깅 향상입니다. WPF 트리 시각화를 사용하여 WPF 트리를 검사하고 검색할 수 있습니다.
자세한 내용은 방법: WPF 트리 시각화 도우미 사용를 참조하십시오.
새로 디자인된 스레드 창에서는 필터링, 호출 스택 검색 및 확장, 그룹화 기능을 제공합니다. 새 열은 선호도 마스크, 프로세스 이름 및 관리되는 ID를 표시합니다. 어떤 열을 어떤 순서로 표시할지 사용자 지정할 수 있습니다.
자세한 내용은 방법: 스레드 창 사용를 참조하십시오.
병렬 스택 및 병렬 작업 디버거 도구 창을 사용하여 C++, C# 또는 Visual Basic으로 작성된 병렬 코드를 시각화하고 디버그할 수 있습니다.
이러한 도구 창을 사용하는 방법에 대한 자세한 내용은 연습: 병렬 응용 프로그램 디버깅을 참조하십시오.
향상된 DataTips는 다른 창 위에 유동적으로 배치하거나 고정시킬 수 있습니다. 이제 DataTips에 메모 필드가 있습니다. 열려 있는 부동 DataTips는 디버그 세션 간에 유지됩니다.
자세한 내용은 방법: DataTips 사용를 참조하십시오.
덤프 디버깅을 위해 디버그 시작하기 전에 새 요약 페이지는 덤프 파일의 내용에 대한 기본 정보를 표시합니다. 이 페이지는 기호 경로 설정 및 디버깅 시작 같은 할 같은 가장 일반적인 다음 단계 빠른 링크를 제공합니다. 이제 디버거는 CLR(공통 언어 런타임) 버전 4.0을 사용 중인 응용 프로그램에 대한 관리되는 덤프의 디버깅을 완벽하게 지원합니다.
자세한 내용은 덤프 파일를 참조하십시오.
조사식 창 및 DataTips은 식을 확인할 때 다른 스레드가 실행되어 프로그램 상태를 변경하고 중단점과 같은 디버그 이벤트가 무시될 수 있는 경우 사용자에게 경고하는 아이콘을 제공합니다. 아이콘을 클릭하면 해당 스레드를 실행합니다.
자세한 내용은 방법: 조사식 값 새로 고침를 참조하십시오.
기호 로드 향상. 방법: 기호 위치 및 로딩 동작 지정를 참조하십시오.
이제 64 비트 운영 체제에서 혼합 모드 네이티브 및 관리되는 코드를 디버깅할 수 있습니다.
자세한 내용은 방법: 64비트 응용 프로그램 디버깅를 참조하십시오.
디버거 보안 -------------------------------------------
다른 프로세스를 디버깅하는 기능을 사용하면 특히 원격으로 디버깅하는 경우 등과 같이 일반적으로 얻을 수 없는 매우 강력한 성능을 발휘할 수 있습니다. 이 경우 디버깅 중인 컴퓨터에 대해 악의적인 사용자가 디버거를 통해 광범위한 손상을 입힐 수 있습니다. 따라서 디버깅을 수행할 수 있는 사용자에 대한 몇 가지 제한 사항이 있습니다. 자세한 내용은 원격 디버깅 권한를 참조하십시오.
그러나 많은 개발자들은 보안 위협이 반대 방향으로 진행될 수도 있다는 사실을 깨닫지 못하고 있습니다. 디버기 프로세스의 악의적인 코드로 인해 디버깅 컴퓨터의 보안이 위험에 처할 수 있습니다. 주의해야 할 보안 위험 요소에는 여러 가지가 있습니다.
디버그 설정 및 준비
------------------------------------------------ 디버거 관련 속성 설정에 대해 설명하고 Visual Studio 디버거를 사용하여 프로그램을 디버깅하는 데 필요한 준비 사항에 대해 설명합니다. Visual Studio에서 프로젝트 템플릿을 사용하여 프로그램을 만들면 디버그 구성에서 이 설정이 올바르게 활성화됩니다.
1. 디버거 프로젝트 설정 일부 프로젝트 설정도 디버깅에 영향을 미칩니다. 즉, 디버거가 검색할 디렉터리, 프로그램 실행에 사용할 명령과 명령 인수, 프로그램에 대해 생성되는 디버그 정보의 형식 등과 같은 사항이 이러한 설정에 따라 결정됩니다. 속성 페이지 대화 상자에서 이 설정을 변경할 수 있습니다.
이 단원에서는 사용할 수 있는 옵션과 각 옵션을 설정하는 방법에 대해 설명합니다.
디버거 옵션을 설정하려면
도구 메뉴에서 옵션을 클릭합니다.
옵션 대화 상자에서 디버깅 폴더를 엽니다.
디버깅 폴더에서 원하는 옵션 범주를 선택합니다.
일반적으로 설정하는 옵션은 일반 범주에 있습니다.
원하는 옵션을 선택하거나 해제합니다. 옵션에 대한 도움말을 보려면 F1 키를 누르십시오.
방법: 디버그 및 릴리스 구성 설정
Visual Studio 2010 프로젝트는 프로그램 릴리스 버전과 디버그 버전에 서로 다른 구성을 사용합니다. 이름이 의미하는 것처럼 디버그 버전은 디버깅용으로 빌드하고 릴리스 버전은 최종 릴리스 배포용으로 빌드합니다.
Visual Studio에서 프로그램을 만들면 Visual Studio에서 자동으로 이러한 구성이 만들어지고 필요한 기본 옵션과 기타 설정이 지정됩니다. 기본 설정은 다음과 같습니다.
프로그램의 디버그 구성은 완전히 기호화된 디버그 정보를 사용하여 컴파일되며 최적화되지 않습니다. 최적화하면 소스 코드와 생성된 명령 간의 관계가 복잡해지므로 디버깅이 복잡해집니다.
프로그램의 릴리스 구성은 완전히 최적화되고, 기호화된 디버그 정보를 포함하지 않습니다. 사용하는 컴파일러 옵션에 따라 디버그 정보가 프로그램 데이터베이스 파일(C++)에서 생성될 수도 있습니다. PDB 파일을 만들면 나중에 릴리스 버전을 디버깅해야 하는 경우 매우 유용하게 사용할 수 있습니다.
표준 도구 모음이나 구성 관리자를 사용하여 릴리스 버전과 디버그 버전 간에 전환할 수 있습니다.
참고 Visual Studio를 설정할 때 기본 프로그래밍 언어에 대한 개발 설정 집합을 선택하라는 메시지가 나타납니다. Visual Basic 개발 설정을 선택하면 디버그 또는 릴리스 구성을 선택하기 위한 도구가 도구 모음에 표시되지 않습니다. 대신, 사용자가 디버그 메뉴에서 시작을 선택하면 Visual Studio에서 디버그 구성이 자동으로 선택되고 빌드 메뉴를 사용할 때는 릴리스 구성이 자동으로 선택됩니다. 볼 개발 설정을 변경하려면 방법: 숨겨진 디버거 명령 복원. 개발 설정을 변경한 후, 옵션 대화 상자에서 프로젝트 및 솔루션 범주 일반 페이지에서 고급 빌드 구성 표시 선택되어 있는지 확인하십시오.
디버그 또는 릴리스 구성으로 빨리 전환하려면
표준 도구 모음의 솔루션 구성 목록 상자에서 디버그 또는 릴리스를 선택합니다.
디버그 또는 릴리스 구성으로 전환하려면
솔루션 탐색기에서 프로젝트를 선택합니다.
보기 메뉴에서 속성 페이지를 클릭합니다.
디버그 탭의 빌드 클릭하거나 Visual C#또는 F # 프로젝트가 들어 있는 컴파일 탭이나 디버그구성 속성 또는 Visual Basic 프로젝트의 Visual C++프로젝트를 구성 드롭다운 목록에서 디버그 또는 릴리스를 클릭합니다.
웹 프로젝트에 대한 속성 페이지 설정 웹 사이트 디버그 구성에 대한 속성 설정은 디버그 및 릴리스 구성에서 설명하는 것처럼 속성 페이지 대화 상자를 사용하여 변경할 수 있습니다. 다음 표에서는 속성 페이지 대화 상자에서 디버거 관련 설정을 확인할 수 있는 위치에 대해 설명합니다.
구성 속성 폴더(시작 옵션 범주)
설정
설명
시작 작업
응용 프로그램 시작에 관련된 옵션을 그룹화하는 제목입니다.
현재 페이지 사용
현재 페이지를 디버깅의 시작 위치로 지정합니다.
특정 페이지:
디버깅을 시작할 웹 페이지를 지정합니다.
시작 외부 프로그램:
디버그 대상 프로그램을 실행하는 명령을 지정합니다.
명령줄 인수:
위에서 지정한 명령의 인수를 지정합니다.
작업 디렉터리:
디버깅 중인 프로그램의 작업 디렉터리를 지정합니다.Visual C#에서는 응용 프로그램이 시작된 디렉터리가 작업 디렉터리입니다. 이 디렉터리는 기본적으로 \bin\debug입니다.
시작 URL
디버깅할 웹 응용 프로그램의 위치를 지정합니다.
페이지를 열지 않고 외부 응용 프로그램의 요청 기다리기
외부 응용 프로그램의 요청을 기다리도록 지정합니다.이 옵션은 Internet Explorer 또는 다른 응용 프로그램을 시작하지 않습니다.응용 프로그램에서 호출될 때 디버깅이 준비합니다.
서버
사용할 서버에 관련된 옵션을 그룹화하는 제목입니다.
기본 웹 서버 사용
기본 웹 서버를 사용하도록 지정합니다.
사용자 지정 서버 사용
서버로 사용할 기본 URL을 입력할 수 있습니다.
디버거
수행할 디버깅의 형식에 관련된 옵션을 그룹화하는 제목입니다.
ASP.NET 디버깅
ASP.NET 개발 플랫폼용으로 작성된 서버 페이지를 디버깅할 수 있습니다.시작 URL에 해당 URL을 지정해야 합니다.
네이티브 코드 디버깅
관리되는 응용 프로그램에서의 비관리 네이티브 Win32 코드에 대한 호출을 디버깅할 수 있습니다.
SQL Server 디버깅
SQL Server 데이터베이스 개체를 디버깅할 수 있습니다.
Silverlight 디버깅
Silverlight 구성 요소를 디버깅할 수 있습니다.
C# 디버그 구성에 대한 프로젝트 설정
C# 디버그 구성에 대한 프로젝트 설정은 디버그 및 릴리스 구성에 설명된 것처럼 속성 페이지 창에서 변경할 수 있습니다. 다음 표에서는 속성 페이지 창에서 디버거 관련 설정을 확인할 수 있는 위치에 대해 설명합니다.
디버그 탭
설정값
설 명
구성
응용 프로그램의 컴파일 모드를 설정합니다. 활성(Debug), Debug, Release, 모든 구성 중에서 선택합니다
시작 작업
이 컨트롤 그룹은 디버그 메뉴에서 시작을 선택할 때 수행되는 작업을 지정합니다.
기본값인 시작 프로젝트를 선택하면 디버깅을 위한 시작 프로젝트가 실행됩니다. 자세한 내용은 시작 프로젝트 선택을 참조하십시오.
시작 외부 프로그램을 선택하면 Visual Studio 프로젝트에 포함되지 않은 프로그램을 시작하고 연결할 수 있습니다. 자세한 내용은 실행 중인 프로그램에 연결을 참조하십시오.
다음 URL로 브라우저 시작을 선택하면 웹 응용 프로그램을 디버깅할 수 있습니다.
명령줄 인수
디버깅할 프로그램에 대한 명령줄 인수를 지정합니다. 명령 이름은 시작 외부 프로그램에 지정된 프로그램 이름입니다. 시작 작업이 시작 URL로 설정되면 명령줄 인수를 지정할 수 없습니다.
작업 디렉터리
디버깅 중인 프로그램의 작업 디렉터리를 지정합니다. Visual C#에서는 응용 프로그램이 시작된 디렉터리가 작업 디렉터리입니다. 이 디렉터리는 기본적으로 \bin\debug입니다.
원격 컴퓨터 사용
디버깅하기 위해 응용 프로그램을 실행할 원격 컴퓨터의 이름이나 Msvsmon 서버 이름입니다. 원격 컴퓨터에 있는 EXE의 위치는 구성 속성 폴더의 빌드 범주에 있는 출력 경로 속성으로 지정됩니다. 이 위치는 원격 컴퓨터의 공유할 수 있는 디렉터리여야 합니다.
비관리 코드 디버깅 사용
관리되는 응용 프로그램에서의 비관리 네이티브 Win32 코드에 대한 호출을 디버깅할 수 있습니다.
SQL Server 디버깅 사용
SQL Server 데이터베이스 개체를 디버깅할 수 있습니다.
빌드 탭
설정
설명
조건부 컴파일 기호
DEBUG 및 TRACE 상수가 여기에 정의됩니다.
이 상수를 사용하면 조건에 따라 Debug 클래스와 Trace 클래스를 컴파일할 수 있습니다. 이 상수를 정의하면 Debug 및 Trace 클래스 메서드의 결과가 출력 창에 표시됩니다. 이 상수를 정의하지 않으면 Debug 및 Trace 클래스 메서드가 컴파일되지 않으므로 결과가 생성되지 않습니다.
Debug 상수는 일반적으로 프로그램의 디버그 버전에 정의되고 릴리스 버전에는 정의되지 않습니다.
Trace는 일반적으로 디버그 및 릴리스 버전에 모두 정의됩니다.
코드 최적화
최적화된 코드에만 나타나는 버그가 발견되지 않을 경우, 디버그 버전에서 이 설정을 해제해야 합니다. 코드를 최적화하면 명령이 소스 창에 있는 문에 직접 대응되지 않기 때문에 디버깅하기 어렵습니다.
출력 경로
디버깅 작업에서는 일반적으로 bin\Debug로 설정합니다.
기호 및 소스 코드 관리
----------------------------------- 디버거가 기호 파일과 소스 파일을 사용하여 디버깅 정보를 표시하는 방법을 설명합니다.
프로그램 데이터베이스 파일(C#, F# 및 Visual Basic)
PDB(프로그램 데이터베이스) 파일에는 프로그램의 디버그 구성을 증분 링크할 수 있도록 디버깅 및 프로젝트 상태 정보가 저장됩니다. PDB 파일은 /debug를 사용하여 빌드할 때 만들어집니다. /debug:full 또는 /debug:pdbonly를 사용하여 응용 프로그램을 빌드할 수 있습니다. /debug:full을 사용하여 빌드하면 디버깅할 수 있는 코드가 생성됩니다. /debug:pdbonly를 사용하여 빌드하면 PDB가 생성되지만 디버그 정보를 사용할 수 없다는 사실을 JIT 컴파일러에 알리는 DebuggableAttribute는 생성되지 않습니다. 디버깅할 수 없도록 하려는 릴리스 빌드에 대해 PDB를 생성하려면 /debug:pdbonly를 사용합니다. 자세한 내용은 /debug(C# 컴파일러 옵션) 또는 /debug(Visual Basic)를 참조하십시오.
Visual Studio 디버거는 project.pdb 파일을 찾기 위해 EXE 또는 DLL 파일에서 PDB의 경로를 사용합니다. 디버거가 해당 위치에서 PDB 파일을 찾을 수 없거나 경로가 올바르지 않으면 디버거는 EXE가 포함된 경로를 검색한 다음 옵션 대화 상자에 지정된 기호 경로를 검색합니다. 이 경로는 일반적으로 기호 노드의 디버깅 폴더입니다. 디버거가 PDB 파일을 찾지 못하면 기호를 검색하거나 검색 경로에 위치를 추가할 수 있는 기호 찾기 대화 상자가 나타납니다.
중요 디버거에서 PDB 정확히 때 이진을 만든 PDB 일치 하는 이진만 로드 됩니다. 즉, PDB 원본 또는 복사 해야 합니다. 이진 만들면 컴파일러의 요인 고려 하므로, 코드 자체는 변경 되지 않은 경우에 바이너리의 실제 레이아웃을 변경할 수 있습니다. 자세한 내용은 MSDN 블로그 게시물 왜 Visual Studio 디버거가 기호 파일을 필요로 하지 않습니다 * 정확히 * 그들이 함께 빌드된 이진 파일이 일치?
DBG 파일
DBG 파일은 Visual Studio 디버거용 Codeview 형식의 디버그 정보가 포함된 PE 형식 파일이며 DBG 생성 방법에 따라 기타 형식이 될 수도 있습니다. 라이브러리나 Windows API와 같이 소스가 없는 코드는 DBG 파일을 사용하여 디버깅할 수 있습니다. DBG 파일을 사용하면 OLE RPC 디버깅도 할 수 있습니다.
DBG 파일은 디버깅에 더 일반적으로 사용되는 PDB 파일로 대체되었습니다.
REBASE.EXE 유틸리티를 사용하면 PE 형식 실행 파일에서 디버그 정보를 제거하여 DBG 파일에 저장할 수 있습니다. PE 파일 헤더의 파일 특징 필드 IMAGE_FILE_DEBUG_STRIPPED를 확인함으로써, 디버거에서는 Codeview 정보가 제거되어 별도의 DBG 파일에 저장된 것을 인식할 수 있습니다.
Windows API에 대한 호출을 디버깅하는 기호가 포함된 시스템 DBG 파일을 다운로드하여 설치할 수 있습니다. 자세한 내용은 시스템 디버그 기호 설치를 참조하십시오.
DBG 파일의 기호를 사용하여 디버깅할 경우에는 전체가 데코레이팅된 이름을 사용해야 합니다. 예를 들어, Windows sndPlaySound 함수에 대한 호출에 중단점을 설정하려면 _sndPlaySoundA@8을 지정해야 합니다.
Visual Studio 디버거는 DBG 기호를 사용해도 보호 모드 커널 코드를 디버깅할 수 없습니다.
사용자 모드 디버깅을 수행하려면 Visual Studio에는 다음 파일이 필요합니다.
Windows 2000 컴퓨터의 경우 \winNT\SYMBOLS\DLL 디렉터리에 있는 DBG 및 PDB 파일
Windows XP 컴퓨터의 경우 \Windows\SYMBOLS\DLL 디렉터리에 있는 PDB 파일
DBG 파일에 대한 자세한 내용은 기술 자료 문서 INFO: PDB and DBG Files - What They Are and How They Work(Q121366)를 참조하십시오.
기술 자료 문서를 MSDN 라이브러리에서 찾을 수 있습니다.
방법: 기호 위치 및 로딩 동작 지정
--------------------------------------
디버거에서 응용 프로그램을 디버깅하기 위해서는 PDB 파일에 저장된 기호 정보가 필요합니다. 기호 정보가 이전 형식인 DBG 파일에 저장된 경우도 있습니다. 디버깅해야 하는 타사 또는 시스템 DLL과 응용 프로그램에 대한 기호 파일이 필요합니다. 기호 파일을 컴퓨터의 디렉터리에 저장하거나 기호 서버에서 다운로드할 수 있습니다.
기본적으로 디버거는 EXE가 있는 위치에서 기호 파일을 로드합니다. 다른 디렉터리나 기호 서버의 기호를 사용하려면 위치를 Visual Studio로 지정해야 합니다.
Visual Studio에서는 디버그 세션을 시작할 때 기호가 자동으로 로드됩니다. Visual Studio에서 기호를 자동으로 로드할 모듈을 지정할 수 있습니다. 모든 모듈에 대해 기호를 자동으로 로드하지 않으려면 모듈 창을 사용하여 추가 기호를 수동으로 로드할 수 있습니다.
기호 서버를 사용하는 방법에 대한 자세한 내용은 방법: 기호 서버 사용을 참조하십시오. 기호 서버를 사용하는 경우 서버가 신뢰할 수 있는지 확인합니다. 그렇지 않으면 보안 위협에 노출될 수 있습니다.
기호 파일이 있는 디렉터리를 지정하려면
도구 메뉴에서 옵션을 선택합니다.
옵션 대화 상자에서 디버깅 노드를 열고 기호를 클릭합니다.
기호 페이지에는 기호 파일(.pdb) 위치라는 상자가 있습니다. 이 상자 위에는 아이콘 네 개가 있습니다.
폴더 아이콘을 클릭합니다.
편집 가능한 텍스트가 기호 파일(.pdb) 위치 상자에 나타납니다.
디렉터리 경로를 입력합니다. 문 완성 기능으로 올바른 형식을 찾을 수 있습니다.
원격 디버깅을 수행하려는 경우 관리 코드의 기호 파일 및 기호 서버 캐시가 원격 컴퓨터에 있어야 합니다. 네이티브 코드의 기호 파일 및 기호 서버 캐시는 로컬 컴퓨터에 있어야 합니다.
원격 기호 서버의 기호를 사용하는 경우 기호를 복사할 수 있는 로컬 디렉터리를 지정하면 성능을 향상시킬 수 있습니다. 이렇게 하려면 이 디렉터리의 기호 캐시 상자에 경로를 입력합니다. 원격 컴퓨터에서 프로그램을 디버깅하는 경우 캐시 디렉터리는 원격 컴퓨터에 있는 디렉터리를 가리킵니다.
확인을 클릭합니다.
기호 경로 목록에서 경로 이름을 제거하려면
이전 절차의 설명에 따라 옵션 대화 상자를 열고 기호 페이지를 찾습니다.
기호 파일(.pdb) 위치 상자에서 경로를 선택합니다.
빨간색 X 아이콘을 클릭합니다.
확인을 클릭합니다.
자동으로 로드할 기호를 지정하려면
이전 절차의 설명에 따라 옵션 대화 상자를 열고 기호 페이지를 찾습니다.
다음에 대한 기호 자동으로 로드에서 제외되지 않은 모두 모듈 또는 지정된 모듈만을 클릭합니다.
제외되지 않은 모두 모듈을 선택한 경우 제외된 모듈 지정을 클릭할 수 있습니다.
자동 로드에서 제외할 기호 대화 상자가 나타납니다.
문서 아이콘을 클릭하여 모듈을 모듈 목록에 추가하거나, 모듈 목록에서 모듈을 선택하고 X 아이콘을 클릭하여 제거합니다.
끝마쳤으면 확인을 클릭합니다.
지정된 모듈만을 선택한 경우 모듈 지정을 클릭할 수 있습니다.
자동으로 로드할 기호 대화 상자가 나타납니다.
문서 아이콘을 클릭하여 모듈을 모듈 목록에 추가하거나, 모듈 목록에서 모듈을 선택하고 X 아이콘을 클릭하여 제거합니다.
기본적으로 기호는 응용 프로그램 모듈이 항상 로드되는 디렉터리에 있습니다. 이 기본 동작을 중지하려면 모듈 옆에 있는 기호 항상 로드를 선택 취소합니다.
끝마쳤으면 확인을 클릭합니다.
확인을 클릭합니다.
수동으로 기호 로드
모듈 창에서 수동으로 기호를 로드할 수 있습니다. Visual Basic, Visual C# 또는 Web Developer Express Edition에서는 이 기능을 사용할 수 없습니다.
시스템 호출 충돌을 디버깅하기 위한 기호 설치
---------------------------------------------------- 시스템 DLL이나 타사 라이브러리를 호출하는 동안 발생하는 충돌을 디버깅하려면 시스템 .dbg 또는 .pdb 파일이 필요한 경우가 많습니다. 이러한 파일에는 Windows DLL, EXE 및 장치 드라이버에 대한 기호가 들어 있습니다. 이 기호는 다음과 같은 방법으로 구할 수 있습니다.
Visual Studio CD-ROM 에는 선택한 버전의 Windows에 해당하는 기호 파일이 들어 있습니다.
OS 지원 도구 CD-ROM에는 Windows 2000 및 Windows XP용 기호 파일이 들어 있습니다.