Share via


기타 기호 서버 DLL

기호 검색에 다른 방법을 사용하려는 경우 SymSrv를 사용하는 대신 고유한 기호 서버 DLL을 제공할 수 있습니다.

기호 경로 설정

SymSrv 이외의 기호 서버를 구현할 때 디버거의 기호 경로는 SymSrv와 동일한 방식으로 설정됩니다. 기호 경로 구문에 대한 설명 은 Microsoft 공용 기호고급 SymSrv 사용을 참조하세요. 문자열 symsrv.dll 고유한 기호 서버 DLL의 이름으로 바꾸는 것만 변경하면 됩니다.

원하는 경우 매개 변수 내에서 다른 구문을 사용하여 UNC 경로, SQL 데이터베이스 식별자 또는 인터넷 사양과 같은 다양한 기술의 사용을 나타낼 수 있습니다.

사용자 고유의 기호 서버 구현

한 가지 방법은 DbgHelp와 통신하는 코드를 사용하여 기호를 찾는 것입니다. DbgHelp에 새로 로드된 모듈에 대한 기호가 필요할 때마다 기호 서버를 호출하여 적절한 기호 파일을 찾습니다. 기호 서버는 타임스탬프로 또는 이미지 크기와 같은 고유한 매개 변수에 따라 각 파일을 찾습니다. 서버는 요청된 파일에 대한 유효성이 검사된 경로를 반환합니다.

기호 서버에서 반환된 실제 기호 파일 이름을 변경해서는 안 됩니다. DbgHelp은 기호 파일의 이름을 여러 위치에 저장합니다. 따라서 서버는 기호가 요청되었을 때 지정한 것과 동일한 이름의 파일을 반환해야 합니다. 이 제한은 기호를 로드하는 동안 표시되는 기호 이름이 프로그래머가 인식할 기호 이름임을 보장하기 위해 필요합니다.

여러 기호 서버에 대한 제한 사항

DbgHelp는 한 번에 하나의 기호 서버만 사용할 수 있습니다. 기호 경로는 동일한 기호 서버 DLL의 여러 인스턴스를 포함할 수 있지만 두 개의 서로 다른 기호 서버 DLL은 포함할 수 없습니다. 기호 경로에 기호 서버의 여러 인스턴스를 자유롭게 포함할 수 있으므로 각 인스턴스가 다른 기호 저장소를 가리키기 때문에 이는 별로 제한되지 않습니다. 그러나 서로 다른 두 기호 서버 DLL 간에 전환하려면 매번 기호 경로를 변경해야 합니다.

사용자 지정 기호 서버 DLL 설치

기호 서버 설치의 세부 정보는 상황에 따라 달라집니다. 기호 서버 DLL을 복사하고 _NT_SYMBOL_PATH 환경 변수를 자동으로 설정하는 설치 프로세스를 설정할 수 있습니다.

서버에서 사용되는 기술에 따라 기호 데이터 자체를 설치하거나 액세스해야 할 수도 있습니다.

이식 가능한 PDB(프로그램 데이터베이스)

이식 가능한 PDB(프로그램 데이터베이스) 형식은 CLI(공용 언어 인프라) 언어 컴파일러에서 생성하고 디버거 및 기타 도구에서 사용하는 디버깅 정보의 인코딩을 설명합니다. 형식은 ECMA-335 파티션 II 메타데이터 표준을 기반으로 합니다. 다양한 운영 체제 및 플랫폼에서 작업을 지원합니다. 자세한 내용은 이식 가능한 PDB 기호를 참조하세요.

사용자 지정 기호 저장소 및 기호 서버

사용자 지정 기호 서버를 만드는 방법에 대한 자세한 내용은 사용자 지정 기호 저장소 및 기호 서버를 참조하세요.