공용 기호 및 개인 기호

드라이버나 다른 프로그램을 빌드할 경우 프로그램 기호는 주로 기호 파일에 저장됩니다. 일부 더 오래된 컴파일러에서는 실행 파일에 특정 기호를 저장하는 경우도 있습니다. 디버거가 프로그램을 분석할 때 프로그램 기호에 액세스해야 합니다.

일반적으로 기호 파일에는 다음 기호 중 일부 또는 전부가 포함될 수 있습니다.

  • 모든 함수의 이름 및 주소

  • 모든 데이터 형식, 구조 및 클래스 정의

  • 전역 변수의 이름, 데이터 형식 및 주소

  • 로컬 변수의 이름, 데이터 형식, 주소 및 범위

  • 각 이진 지침에 대응하는 소스 코드 줄 수

일부 프로그램 개발자는 이 모든 정보를 고객과 공유하는 데 불편을 느낄 수도 있습니다. 기호 파일에서 기호의 양을 줄이기 위해 BinPlace를 사용할 수 있습니다.

가장 기초적인 디버깅조차도 일부 기본 기호(예: 함수 이름 및 전역 변수)를 필요로 합니다. 이 기호를 공개 기호라고 합니다. 데이터 구조 이름, 개체 파일 하나에만 표시되는 전역 변수, 로컬 변수 및 줄 번호 정보와 같은 기호의 경우 좀 더 심도 깊은 디버깅 세션에 유용하지만 항상 디버깅에 필요하지는 않습니다. 이 경우 이 기호를 개인 기호라고 합니다.

공개 기호와 개인 기호가 모두 포함되어 있는 있는 기호 파일은 전체 기호 파일이라고 합니다. 공개 기호만 포함되어 있는 기호 파일은 스트라이프 기호 파일이라고 합니다.

BinPlace에서는 스트라이프 기호 파일을 만들 수 있습니다. 공개 기호만 포함되고 개인 기호가 제거("스트라이프됨")된 새로운 기호 파일을 만들면 됩니다. 가장 일반적인 BinPlace 옵션을 사용할 경우(-a -x -s -n) 스트라이프 기호 파일은 -s 스위치 다음에 나열되는 디렉터리에 배치되고, 전체 기호 파일은 -n 스위치 다음에 나열되는 디렉터리에 배치됩니다.

BinPlace에서 기호 파일을 스트라이프하면 스트라이프 버전과 전체 버전의 파일에 동일한 서명과 기타 식별 정보가 지정됩니다. 이렇게 하면 디버깅을 위해 두 버전 중 하나를 사용할 수 있습니다.

참고   BinPlace는 기호 파일이 실행 파일과 동일한 디렉터리에 있는 경우 기호 파일에서 개인 기호를 스트라이프하므로 BinPlace 명령줄에서 실행 가능한 파일 이름(적절한 옵션 함께 사용)을 지정합니다. 기호 파일 자체의 이름을 지정할 수는 없습니다. 이렇게 하면 BinPlace에서 파일을 변경하지 않고 이동합니다.

기호 파일에 개인 기호가 있는지 확인해야 할 경우 SymChk 도구를 사용할 수 있습니다. SymChk는 Windows 패키지용 디버깅 도구에 포함되어 도움말 파일에 해당 패키지와 함께 설명되어 있습니다. 자세한 내용은 Windows 디버깅을 참조하세요.

드라이버를 "Designed for Windows" 로고 프로그램에 제출할 때 Microsoft와 개인 기호를 공유하지 않으려면 스트라이프된 기호 파일을 제출하면 됩니다. BinPlace에서 스트라이프된 기호 파일에는 일반적으로 기밀이라고 간주되는 드라이버 아키텍처는 전혀 표시되지 않습니다. 자세한 내용은 Windows 하드웨어 인증을 참조하세요.

 

 

표시:
© 2015 Microsoft