다음을 통해 공유


기호 로드

WPA(Windows Performance Analyzer)에서 다음 사용자 기본 설정을 지정할 수 있습니다.

  • 기호 로드

  • 기호 경로 구성

이러한 옵션을 변경하려면 기록을 연 다음 추적 메뉴에서 옵션을 선택합니다.

관리되는 기호

관리되는 프로세스에 대한 기호 확인 및 스택은 다음 시스템에서 지원됩니다.

  • Windows 8 이상 릴리스에서 .NET Framework 4.5 이상 릴리스

  • x86 컴퓨터에서 .NET Framework 4.0 이상 릴리스

WPR을 사용하여 추적을 캡처하는 경우, WPR을 사용하면 추적에서 관리되는 기호를 확인하는 데 필요한 모든 공급자를 사용할 수 있습니다. WPR은 이러한 관리되는 기호의 PDB 파일을 포함하는 저장된 추적 옆에 폴더를 만듭니다. WPA가 추적을 열면 WPA는 이 폴더를 찾고 기호 경로에 자동으로 추가합니다. WPR을 사용하여 추적을 생성하지 않은 경우 .NET Framework 프로그램의 기호가 완전히 디코딩되거나 디코딩되지 않을 수 있습니다.

JavaScript 기호

JavaScript 프로세스에 대한 기호 확인 및 스택은 다음 소프트웨어를 실행하는 시스템에서 지원됩니다.

  • Internet Explorer 10 이상 버전과 함께 Windows 7 사용

  • Windows 8에서 JavaScript를 사용하는 애플리케이션

WP를 사용하면 필요한 공급자가 지원되는 시스템에서 JavaScript 코드의 기호를 디코딩할 수 있습니다. JavaScript 메서드 주소 및 스택 프레임은 JavaScript 파일 이름, 메서드 이름, 줄 번호 및 열 번호로 디코딩됩니다.

상대 경로 및 포함된 환경 변수

_NT_SYMBOL_PATH_NT_SYMCACHE_PATH 환경 변수는 상대 경로, 절대 경로, 네트워크 공유 경로 또는 포함된 환경 변수를 사용할 수 있습니다. WPA는 상대 경로를 처음 설정할 때 상대 경로를 절대 경로로 변환합니다. WPA는 프로그램이 시작될 때 WPA가 환경 변수에서 로드하는 상대 경로를 변환합니다.

WPA는 대화 상자를 닫을 때 기호 경로 구성 대화 상자에 입력한 상대 경로를 변환합니다. 현재 디렉터리에 대한 변경 내용은 이미 설정한 상대 경로에 영향을 미치지 않습니다. 기호 경로 구성 대화 상자에는 WPA가 상대 경로를 확장하는 방법을 볼 수 있도록 대화 상자를 처음 열 때 현재 설정된 경로가 표시됩니다.

WPA는 상대 경로를 확장하는 동시에 포함된 환경 변수를 확장합니다. WPA는 프로그램이 시작될 때 환경 변수를 캡처하므로 현재 실행 중인 WPA 인스턴스 외부에 있는 환경 변수에 대한 변경 내용은 해당 인스턴스에 나타나지 않습니다.

WinDbg 또는 Microsoft Visual Studio와 같은 _NT_SYMCACHE_PATH 환경 변수를 사용하는 다른 프로그램에서는 상대 경로 또는 포함된 환경 변수를 동일한 방식으로 처리하지 못할 수 있습니다.

SymCache 경로

WPA는 SymCache 파일을 사용하여 PDB(프로그램 데이터베이스) 파일의 기호 정보를 간결하고 쉽게 액세스할 수 있는 방식으로 캐시합니다. WPA가 추적에 대한 기호로 SymCache 폴더를 채운 후에는 해당 추적에 대한 기호가 훨씬 더 빠르게 다시 로드됩니다. SymCache 파일이 너무 커지거나 더 이상 필요하지 않은 경우 해당 SymCache 파일을 안전하게 삭제할 수 있습니다. WPA는 필요에 따라 새 파일로 SymCache 폴더를 다시 채웁니다. SymCache 파일을 다른 컴퓨터에 복사하거나 네트워크를 통해 파일을 공유하여 다른 컴퓨터에서 기호를 빠르게 로드할 수도 있습니다.

기호 경로 구성 대화 상자를 사용하여 _NT_SYMCACHE_PATH 환경 변수를 WPA에서 액세스할 수 없는 폴더로 설정하는 경우 확인 단추를 사용해도 대화 상자가 닫히지 않습니다. 그러나 오류 메시지가 표시되지 않습니다.

_NT_SYMCACHE_PATH 환경 변수가 할당되지 않거나 비어 있으면 WPA는 WPA 실행 파일이 포함된 드라이브의 루트에 SymCache 폴더를 만듭니다. _NT_SYMCACHE_PATH 환경 변수가 네트워크 공유에서 실행 중인 경우 변수는 Program Files 폴더가 포함된 드라이브의 루트에 SymCache 폴더를 만듭니다. 루트 시스템 드라이브는 일반적으로 C 드라이브입니다.

SymCache 예제

다음 명령은 SymCache 파일을 C:\SymCache 폴더에 넣습니다.

C:\SymCache

다음 명령은 SymCache 파일을 C:\SymCache 폴더에 넣고 \\network\SymCache 폴더에서 기호를 검색한 다음 _NT_SYMBOL_PATH 환경 변수를 처리합니다.

C:\SymCache*\\network\SymCache

다음 예제는 \\network\SymCache 폴더에서 찾은 모든 기호를 C:\SymCache 폴더에 복사합니다. 이렇게 하면 사용자가 큰 SymCache 폴더를 만든 다음 사용자가 특정 추적에 필요한 파일만 지정된 폴더에 복사할 수 있습니다.

여러 대체 SymCache 폴더를 검색하려면 별표(*) 구분 기호를 사용하여 검색 경로에 폴더를 추가합니다. WPA가 대체 위치 중 하나에서 SymCache 파일을 찾으면 WPA는 경로의 첫 번째 SymCache 폴더에만 파일을 복사합니다. 또한 WPA는 새로 만든 SymCache 파일을 경로의 첫 번째 SymCache 폴더에 넣습니다.

복사 및 쓰기를 사용하지 않도록 설정하지만 계층적 검색 기능을 계속 사용하려면 다음 예제와 같이 경로의 첫 번째 위치를 비워 두어야 합니다.

*\\network\SymCache

이 명령을 실행하면 WPA는 \\network\SymCache 폴더를 검색합니다. 그러나 WPA는 결과를 복사하거나 생성된 SymCache 파일을 다른 폴더에 쓰지 않습니다.

기호 경로

_NT_SYMBOL_PATH 환경 변수에 대한 기본 정보는 다음 MSDN 문서를 참조하세요.

WPA에서 기호 로드는 _NT_SYMBOL_PATH 환경 변수가 지정하는 경로에 따라 달라집니다(WPA가 이미 SymCache 폴더에 캐시한 기호 제외). WPA는 왼쪽부터 순차적으로 경로를 검색합니다. 그러나 이러한 경로 중 하나에 PDB 파일에서 기호를 로드하는 것은 특히 PDB가 원격 컴퓨터에 있는 경우 시간이 많이 걸릴 수 있습니다. 따라서 로컬 경로 뒤의 네트워크 경로를 배치하고 원격 기호 서버에 로컬 PDB 캐시를 사용하는 것이 좋습니다. 그러나 모든 기호가 로컬로 저장되더라도 WPA는 기호를 로드하는 동안 응답하지 않게 될 수 있습니다. WPA는 기호 로드를 완료한 후 대화형 상태로 돌아갑니다.

_NT_SYMBOL_PATH 환경 변수가 설정되지 않은 경우 WPA는 다음 기본값을 사용합니다.

 .;SRV*\Symbols*https://msdl.microsoft.com/download/symbols;

세미콜론(;) 다른 경로를 분리합니다. 첫 번째 경로는 마침표(.)입니다. WPA는 WPA가 추적을 로드할 때 이 경로를 현재 폴더에 매핑합니다. WPA가 상대 경로를 처리하는 방법에 대한 자세한 내용은 이 문서의 SymCache 경로 섹션을 참조하세요.

두 번째 경로는 다음과 같습니다.

 SRV*\Symbols*https://msdl.microsoft.com/download/symbols

NGEN PB 경로도 설정해야 합니다.

set _NT_SYMBOL_PATH=srv*C:\Symbols.NGEN;srv*https://msdl.microsoft.com/download/symbols

이 경로를 지정하면 WPA는 Microsoft 공용 기호 서버에서 기호를 다운로드하고 \Symbols 폴더에 PDB 파일을 캐시합니다(이 폴더는 Windows 성능 Toolkit 설치 폴더를 기준으로 합니다.) 따라서 WPA는 Symbols 폴더를 SymCache 폴더 옆에 배치합니다. 그러나 SymCache 폴더가 네트워크 공유에 있는 경우 WPA는 Program Files 폴더를 보유하는 드라이브의 루트에 Symbols 폴더를 만듭니다. 루트 시스템 드라이브는 일반적으로 C 드라이브입니다.

PDB 파일에서 기호를 검색하고 로드하지 않으려면 _NT_SYMBOL_PATH 환경 변수를 마침표(.)와 같은 기호가 포함되지 않은 로컬 폴더로 설정할 수 있습니다. _NT_SYMBOL_PATH 환경 변수를 비워 두지 마세요. _NT_SYMBOL_PATH 환경 변수를 비워 두면 WPA에서 기본값을 사용합니다.

WPA가 기록을 열면 WPA는 .ngenpdb 확장을 사용하는 추적과 이름이 같은 폴더를 찾습니다. WPA가 이 폴더를 찾으면 WPA는 _NT_SYMBOL_PATH 환경 변수의 끝에 폴더를 추가합니다. Windows WPR(성능 레코더)은 기록 중에 WPR이 캡처한 관리 코드에 대한 PDB 파일이 포함된 폴더를 자동으로 만듭니다. 예를 들어 WPA에서 C:\trace.etl 기록을 열면 WPA는 C:\trace.etl.ngenpdb 폴더를 검색합니다. 이 폴더가 있는 경우 WPA는 _NT_SYMBOL_PATH 환경 변수에 폴더를 추가합니다.

WPA 기능

기호 로드 또는 기호 경로 구성

CLR 4.0 NGEN PDB 지원 사용

일반적인 심층 분석 문제