DTrace는 관리자나 개발자가 사용자 모드나 커널 모드에서 시스템을 실시간으로 살펴볼 수 있는 동적 추적 프레임워크입니다. DTrace에는 추적 지점을 동적으로 삽입할 수 있는 C 스타일의 높은 수준의 강력한 프로그래밍 언어가 있습니다. 동적으로 삽입된 추적 지점을 사용하면 조건이나 오류를 필터링하고, 잠금 패턴을 분석하는 코드를 작성하고, 교착 상태를 감지할 수 있습니다.
Windows에서 DTrace는 정적이며 런타임에 추적 지점을 프로그래밍 방식으로 삽입하는 기능을 제공하지 않는 ETW(Windows용 이벤트 추적)를 확장합니다.
dtrace.sys에서 사용되는 모든 API와 기능은 문서화된 호출입니다.
Microsoft는 다양한 시스템 모니터링 역할을 수행할 수 있는 Windows 10용 특수 드라이버를 구현했습니다. 드라이버는 Windows 10 버전 1903에 포함됩니다. 또한 DTrace를 사용하려면 현재 커널 디버거가 활성화된 상태로 Windows를 시작해야 합니다.
이식된 DTrace 도구의 소스 코드는 GitHub에서 사용할 수 있습니다. 페이지를 방문하세요 Windows의 DTraceGitHub의 OpenDTrace 프로젝트에서 확인하세요.
내용물 숨다 Windows 10에서 DTrace 설정 DTrace 사용Windows 10에서 DTrace 설정
기능을 사용하기 위한 전제조건
- 윈도우 10 내부자빌드 18342또는 더 높게
- 다음에서만 사용 가능x64Windows에서는 64비트 프로세스에 대해서만 추적 정보를 캡처합니다. Windows 참가자 프로그램은활성화됨그리고구성된유효한 Windows 참가자 계정이 있는 경우
- 자세한 내용은 설정->업데이트 및 보안->Windows 참가자 프로그램을 방문하세요.
지침:
- BCD 구성 세트:
- bcdedit /dtrace 설정
- 참고: 새 Insider 빌드로 업그레이드하는 경우 bcdedit 옵션을 다시 설정해야 합니다.
- 그러면 DTrace가 작동하는 데 필요한 사용자 모드 구성 요소, 드라이버 및 추가 기능 온디맨드 패키지가 설치됩니다.
- 선택사항: 업데이트PATH 환경 변수포함하는C:Program FilesDTrace
- PATH=%PATH%;'C:Program FilesDTrace' 설정
- 설정기호 경로
- 기호를 로컬로 캐싱하기 위한 새 디렉터리를 만듭니다. 예: mkdir c:symbols
- 세트_NT_SYMBOL_PATH=srv*C:기호* http://msdl.microsoft.com/download/symbols
- DTrace는 기호 서버에서 필요한 기호를 자동으로 다운로드하고 로컬 경로에 캐시합니다.
선택 과목:커널 디버거 설정대상 머신에 대한 연결( MSDN 링크). 이것은오직FBT 또는 다른 공급자를 사용하여 커널 이벤트를 추적하려는 경우 필요합니다. - 커널 디버거를 설정하려면 C:(활성화된 경우)에서 Secureboot 및 Bitlocker를 비활성화해야 합니다.
DTrace 사용
- 관리자 권한 명령 프롬프트를 엽니다.
- 다음 명령 중 하나를 실행합니다.|_+_|
명령dtrace -lvn syscall:::syscall 공급자가 제공하는 모든 프로브와 해당 매개변수를 나열합니다.
다음은 Windows에서 사용할 수 있는 일부 공급자와 해당 공급자가 계측하는 내용입니다.
- syscall – NTOS 시스템 호출fbt(함수 경계 추적) – 커널 함수 입력 및 반환pid – 사용자 모드 프로세스 추적. 커널 모드 FBT와 비슷하지만 임의 함수 offsets.etw(Windows용 이벤트 추적)의 계측도 허용합니다. – ETW에 대한 프로브 정의를 허용합니다. 이 공급자는 DTrace에서 기존 운영 체제 계측을 활용하는 데 도움이 됩니다.
- 이는 Windows가 이미 제공하는 모든 정보를 노출하고 얻을 수 있도록 DTrace에 추가한 것 중 하나입니다. S.T.W.
Windows 시나리오에 적용할 수 있는 추가 샘플 스크립트는 여기에서 찾을 수 있습니다. 샘플 디렉토리.
원천: 마이크로소프트