다음을 통해 공유


기호 사용

기호 파일 및 기호 서버 사용을 포함하여 기호에 대한 개요는 기호를 참조하세요.

기호 이름 및 위치

이름이 지정된 기호의 위치를 찾으려면 GetOffsetByName을 사용합니다. 기호 이름을 지정하는 데 사용되는 구문에 대한 자세한 내용은 기호 구문 및 기호 일치를 참조하세요.

기호의 정확한 이름을 알 수 없거나 여러 기호의 이름이 같은 경우 StartSymbolMatch 는 이름이 지정된 패턴과 일치하는 기호에 대한 검색을 시작합니다. 구문에 대한 자세한 내용은 문자열 와일드카드 구문을 참조하세요.

해당 위치에 지정된 기호의 이름을 찾으려면 GetNameByOffset을 사용합니다. 지정된 위치 근처의 모듈에서 기호 이름을 찾으려면 GetNearNamebyOffset을 사용합니다.

참고 가능하면 모듈 이름(예: mymodule!기본)으로 기호를 한정합니다. 그렇지 않으면 기호가 없는 경우(예: 입력 체계 오류로 인해) 엔진은 모든 모듈에 대한 기호를 로드하고 검색해야 합니다. 특히 커널 모드 디버깅의 경우 속도가 느릴 수 있습니다. 기호 이름이 모듈 이름으로 한정된 경우 엔진은 해당 모듈의 기호만 검색하면 됩니다.

기호는 구조 체 DEBUG_MODULE_AND_ID 사용하여 고유하게 식별됩니다. 이 구조체는 각각 이름과 위치에 따라 기호를 검색하는 GetSymbolEntriesByNameGetSymbolEntriesByOffset 메서드에 의해 반환됩니다.

GetSymbolEntryInformation 메서드는 DEBUG_SYMBOL_ENTRY 구조를 사용하여 기호에 대한 설명을 반환합니다.

구조체 내에서 필드의 오프셋을 찾으려면 GetFieldOffset을 사용합니다. 구조체 내에서 인덱스가 지정된 필드의 이름을 찾으려면 GetFieldName을 사용합니다. 값이 지정된 열거형 상수의 이름을 찾으려면 GetConstantName을 사용합니다.

GetSymbolInformation 메서드는 기호에 대한 정보를 위해 여러 요청을 수행할 수 있습니다.

기호 옵션

여러 옵션이 기호를 로드하고 언로드하는 방법을 제어합니다. 이러한 옵션에 대한 설명은 기호 옵션 설정을 참조하세요.

AddSymbolOptions를 사용하여 기호 옵션을 켜고 RemoveSymbolOptions를 사용하여 해제할 수 있습니다.

GetSymbolOptions는 현재 기호 옵션을 반환합니다. 모든 기호 옵션을 한 번에 설정하려면 SetSymbolOptions를 사용합니다.

기호 다시 로드

기호 파일을 로드한 후 엔진은 내부 캐시에 기호 정보를 저장합니다. 이 캐시를 플러시하려면 다시 로드를 사용합니다. 이러한 기호는 지금 또는 나중에 다시 로드해야 합니다.

합성 기호

합성 기호는 쉽게 참조할 수 있도록 임의의 주소에 레이블을 지정하는 방법입니다. 가상 기호는 모든 기존 모듈에서 만들 수 있습니다. AddSyntheticSymbol 메서드는 새 합성 기호를 만듭니다. RemoveSyntheticSymbol을 사용하여 합성 기호를 제거할 수 있습니다. 모듈의 기호를 다시 로드하면 해당 모듈과 연결된 모든 가상 기호가 삭제됩니다.

기호 경로

기호 경로에 디렉터리 또는 기호 서버를 추가하려면 AppendSymbolPath 메서드를 사용합니다. 전체 기호 경로는 GetSymbolPath 에서 반환되며 SetSymbolPath를 사용하여 변경할 수 있습니다.