Windows Tips & News

이제 Windows에서 DTrace를 사용할 수 있습니다.

권장: Windows 문제를 해결하고 시스템 성능을 최적화하려면 여기를 클릭하십시오.

다음 Windows 10 기능 업데이트(19H1, 2019년 4월 업데이트, 버전 1903)에는 널리 사용되는 오픈 소스 디버깅 및 진단 도구인 DTrace에 대한 지원이 포함됩니다. 원래 Solaris용으로 제작되었으며 Linux, FreeBSD, NetBSD 및 macOS에서 사용할 수 있게 되었습니다. Microsoft는 이를 Windows로 이식했습니다.

광고

DTrace는 관리자 또는 개발자가 사용자 또는 커널 모드에서 시스템을 실시간으로 볼 수 있도록 하는 동적 추적 프레임워크입니다. DTrace에는 추적 지점을 동적으로 삽입할 수 있는 C 스타일의 높은 수준의 강력한 프로그래밍 언어가 있습니다. 동적으로 삽입된 이러한 추적 지점을 사용하여 조건 또는 오류를 필터링하고 잠금 패턴을 분석하는 코드를 작성하고 교착 상태를 감지하는 등의 작업을 수행할 수 있습니다.

Windows에서 DTrace는 정적이며 런타임에 추적 지점을 프로그래밍 방식으로 삽입하는 기능을 제공하지 않는 Windows용 이벤트 추적(ETW)을 확장합니다.

dtrace.sys에서 사용하는 모든 API와 기능은 문서화된 호출입니다.

Windows의 Dtrace

Microsoft는 다양한 시스템 모니터링 역할을 수행할 수 있는 Windows 10용 특수 드라이버를 구현했습니다. 드라이버는 Windows 10 버전 1903에 포함됩니다. 또한 DTrace는 현재 커널 디버거가 활성화된 상태에서 Windows를 시작해야 합니다.

이식된 DTrace 도구의 소스 코드는 GitHub에서 사용할 수 있습니다. 페이지를 방문하십시오 "Windows의 DTrace"를 보려면 GitHub의 OpenDTrace 프로젝트 아래에 있습니다.

내용물숨다
Windows 10에서 DTrace 설정
DTrace 사용

Windows 10에서 DTrace 설정

기능을 사용하기 위한 전제 조건

  • 윈도우 10 내부자 빌드 18342 또는 더 높게
  • 에서만 사용 가능 x64 Windows 및 64비트 프로세스에 대한 추적 정보 캡처
  • Windows 참가자 프로그램 ~이다 활성화 그리고 구성된 유효한 Windows 참가자 계정으로
    • 자세한 내용은 설정->업데이트 및 보안->Windows 참가자 프로그램을 방문하십시오.

지침:

  1. BCD 구성 집합:
    1. bcdedit / dtrace 설정
    2. 참고로 새 Insider 빌드로 업그레이드하는 경우 bcdedit 옵션을 다시 설정해야 합니다.
  2. 다운로드 에서 DTrace 패키지를 설치합니다. 다운로드 센터.
    1. 이렇게 하면 DTrace가 작동하는 데 필요한 사용자 모드 구성 요소, 드라이버 및 주문형 추가 기능 패키지가 설치됩니다.
  3. 선택 사항: 업데이트 PATH 환경 변수 포함하는 C:\프로그램 파일\DTrace
    1. set PATH=%PATH%;"C:\Program Files\DTrace"
  4. 설정 기호 경로
    1. 기호를 로컬로 캐싱하기 위한 새 디렉터리를 만듭니다. 예: mkdir c:\symbols
    2. 세트 _NT_SYMBOL_PATH=srv*C:\symbols*http://msdl.microsoft.com/download/symbols
    3. DTrace는 기호 서버에서 필요한 기호를 자동으로 다운로드하고 로컬 경로에 캐시합니다.
  5. 선택 과목:커널 디버거 설정 대상 머신에 연결(MSDN 링크). 이것은 오직 FBT 또는 다른 공급자를 사용하여 커널 이벤트를 추적하려는 경우 필요합니다.
    1. 커널 디버거를 설정하려면 C:(활성화된 경우)에서 Secureboot 및 Bitlocker를 비활성화해야 합니다.
  6. 재부팅 대상 기계

DTrace 사용

  1. 열기 상승된 명령 프롬프트.
  2. 다음 명령 중 하나를 실행합니다.
    # 5초 동안 프로그램별 Syscall 요약: dtrace -Fn "tick-5sec { exit (0);} syscallentry{ @num[pid, execname] = count();} " # 3에 대한 타이머 설정/취소 프로그램 요약 초: dtrace -Fn "tick-3sec { exit (0);} syscall:: Nt*Timer*:entry { @[probefunc, execname, pid] = count();}" # 덤프 시스템 프로세스 커널 구조: (필요 기호 경로 설정되다) dtrace -n "BEGIN{print(*(struct nt`_EPROCESS *) nt`PsInitialSystemProcess);exit (0);}" # notepad.exe를 실행할 때 NTFS를 통한 경로 추적(KD a 필요

명령 dtrace -lvn 시스템 호출 syscall 공급자에서 사용할 수 있는 모든 프로브와 해당 매개변수를 나열합니다.

다음은 Windows에서 사용할 수 있는 일부 공급자와 해당 공급자가 계측하는 것입니다.

  • 시스템 호출 – NTOS 시스템 호출
  • fbt (함수 경계 추적) – 커널 함수 입력 및 반환
  • PID – 사용자 모드 프로세스 추적. 커널 모드 FBT와 유사하지만 임의 함수 오프셋의 계측도 허용합니다.
  • 에트 (Windows용 이벤트 추적) – ETW에 대해 프로브를 정의할 수 있습니다. 이 공급자는 DTrace에서 기존 운영 체제 계측을 활용하는 데 도움이 됩니다.
    • 이것은 Windows가 이미 제공하는 모든 정보를 노출하고 얻을 수 있도록 DTrace에 추가한 것입니다. ETW.

Windows 시나리오에 적용 가능한 더 많은 샘플 스크립트는 여기에서 찾을 수 있습니다. 샘플 디렉토리.

원천: 마이크로소프트

권장: Windows 문제를 해결하고 시스템 성능을 최적화하려면 여기를 클릭하십시오.
Windows 10 1주년 업데이트용 Windows Media Center

Windows 10 1주년 업데이트용 Windows Media Center

권장: Windows 문제를 해결하고 시스템 성능을 최적화하려면 여기를 클릭하십시오.아시다시피 Media Center는 더 이상 Windows 운영 체제의 일부가 아닙니다. ...

더 읽어보기

Windows 10의 모든 폴더에 대한 폴더 보기 템플릿 변경

Windows 10의 모든 폴더에 대한 폴더 보기 템플릿 변경

파일 탐색기를 사용하는 경우 각 폴더의 보기 설정을 기억하는 좋은 기능이 있다는 것을 이미 알고 있을 것입니다. 불행히도 Microsoft에서는 이에 대해 제대로 설명하지 않...

더 읽어보기

Windows 11은 이제 베타 채널에서 사용할 수 있으며 이번 주에는 Dev 빌드가 없습니다.

Windows 11은 이제 베타 채널에서 사용할 수 있으며 이번 주에는 Dev 빌드가 없습니다.

이번 가을 어딘가에서 Windows 11의 공개 릴리스가 가까워짐에 따라 Microsoft는 더 많은 피드백을 얻기 위해 테스트 범위를 확장하고 있습니다. 지금까지 Windo...

더 읽어보기