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

원천: 마이크로소프트

Windows 10에 AV1 비디오 코덱 설치

Windows 10에 AV1 비디오 코덱 설치

권장: Windows 문제를 해결하고 시스템 성능을 최적화하려면 여기를 클릭하십시오.여기에 덧붙여 웹 미디어 확장 패키지 Windows 10에 Vorbis, Theora 및 ...

더 읽어보기

Windows 10 앱 아카이브

Windows 10 앱 아카이브

Windows 10 플랫폼용으로 설계된 유니버설 앱에 대한 새로운 정보가 흥미로운 변경 사항을 공개했습니다. Microsoft는 며칠 전에 Groove Music 앱에 운영 ...

더 읽어보기

스토어 앱 아카이브용 Windows 10 바탕 화면 바로 가기

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

더 읽어보기