개체 참조 추적
개체 참조 추적 기능은 개체 참조 카운터가 증가하거나 감소할 때마다 순차적 스택 추적을 기록합니다. 추적은 이중 역참조, 참조 실패 및 역참조 개체 실패를 포함하여 개체 참조 오류를 검색하는 데 도움이 될 수 있습니다. 이 기능은 Windows Vista 이상 버전의 Windows에서만 지원됩니다.
전역 플래그 대화 상자에서 개체 참조 추적 기능을 구성하는 방법에 대한 자세한 내용은 개체 참조 추적 구성을 참조하세요. 명령 프롬프트에서 개체 참조 추적 기능을 구성하는 방법에 대한 자세한 내용은 GFlags 명령을 참조하세요. 예제는 예제 15: 개체 참조 추적 사용을 참조하세요.
개체 참조 추적은 특정 개체가 제대로 참조되거나 역참조되지 않는 것으로 의심되는 경우에 가장 유용합니다. 일반적으로 풀 사용량이 증가하면 개체가 누출되거나 핸들 수가 0이더라도 프로세스 또는 세션을 종료할 수 없기 때문입니다. 나중에 검토할 수 있도록 로그에 기록된 추적과 달리 개체 참조 추적은 프로세스가 실행되고 개체가 참조되고 역참조되는 동안 실시간으로 사용하도록 설계되었습니다. !obtrace 디버거 확장을 사용하여 디버거에서 개체 참조 추적을 볼 수 있습니다. 이 확장에는 지정된 개체 주소가 필요하므로 오류의 발생 가능성이 높은 개체를 미리 알고 있어야 합니다.
다음 규칙은 개체 참조 추적에 적용됩니다.
한 번에 하나의 개체 참조 추적만 실행할 수 있습니다.
커널 전체 추적은 실용적이지 않으므로 추적을 지정된 풀 태그로 만든 개체 또는 지정된 프로세스(이미지 파일 이름으로 표시)에서 만든 개체 또는 둘 다로 제한해야 합니다.
각 추적에 대해 하나의 이미지 파일만 지정할 수 있습니다. 이미지 파일을 지정하는 경우 추적은 이미지가 나타내는 프로세스에서 만든 개체로 제한됩니다. 프로세스에서 참조하지만 다른 프로세스에서 만든 개체는 추적되지 않습니다.
각 추적에 대해 최대 16개의 풀 태그를 지정할 수 있습니다. 지정된 풀 태그가 있는 개체는 추적됩니다.
이미지 파일과 하나 이상의 풀 태그를 모두 지정하는 경우 추적은 프로세스에 의해 생성되고 지정된 풀 태그가 있는 개체로 제한됩니다.
개체 참조 추적은 추적이 시작될 때 이미 실행 중인 프로세스를 추적할 수 없습니다. 추적에는 추적이 시작된 후 시작되는 프로세스의 개체만 포함됩니다.
추적으로 표시된 개체는 개체가 제거되거나 추적이 비활성화될 때까지 추적됩니다. 기본적으로 개체의 추적은 개체가 제거될 때까지만 유지되지만 추적을 사용하지 않도록 설정할 때까지 추적이 유지되는 "영구" 추적(/p)을 지정할 수 있습니다.
개체 참조 추적 구성을 레지스트리 설정 또는 커널 플래그(런타임) 설정으로 저장할 수 있습니다. 레지스트리 및 커널 플래그 설정이 모두 있는 경우 런타임 설정이 우선하지만 컴퓨터를 종료하거나 다시 시작할 때 손실됩니다.