Windows Tips & News

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

click fraud protection

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

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

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

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

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

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

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 시나리오에 적용 가능한 더 많은 샘플 스크립트는 여기에서 찾을 수 있습니다. 샘플 디렉토리.

원천: 마이크로소프트

Sergey Tkachenko, Winaero의 저자

이 웹사이트는 쿠키를 사용하여 웹사이트를 탐색하는 동안 경험을 개선합니다. 이러한 쿠키 중 필요에 따라 분류된 쿠키는 웹사이트의 기본 기능이 작동하는 데 필수적이므로 귀하의 ...

더 읽어보기

Sergey Tkachenko, Winaero의 저자

Windows 10은 새로운 도구를 얻고 있습니다. 윙겟. 신규 또는 기존 Windows 설치에서 개발자 환경 구축에 필요한 앱 및 개발 도구를 최소한의 시간에 대량으로 설치...

더 읽어보기

정말 필요한 경우 Windows 11에서 Internet Explorer를 시작하는 방법

정말 필요한 경우 Windows 11에서 Internet Explorer를 시작하는 방법

작업에 필요한 경우 Windows 11에서 Internet Explorer 브라우저를 여는 방법에는 최소한 두 가지가 있습니다. 공식적으로 묻히고 중단되었지만 일부 사람들은 ...

더 읽어보기