DTrace เป็นเฟรมเวิร์กการติดตามแบบไดนามิกที่ช่วยให้ผู้ดูแลระบบหรือนักพัฒนาสามารถดูระบบแบบเรียลไทม์ได้ทั้งในโหมดผู้ใช้หรือเคอร์เนล DTrace มีภาษาโปรแกรมระดับสูงแบบ C และภาษาการเขียนโปรแกรมที่ทรงพลังที่ช่วยให้คุณสามารถแทรกจุดติดตามแบบไดนามิกได้ การใช้จุดติดตามที่แทรกแบบไดนามิกเหล่านี้ ทำให้คุณสามารถกรองเงื่อนไขหรือข้อผิดพลาด เขียนโค้ดเพื่อวิเคราะห์รูปแบบการล็อค ตรวจจับการหยุดชะงัก ฯลฯ
บน Windows DTrace จะขยาย Event Tracing สำหรับ Windows (ETW) ซึ่งเป็นแบบคงที่และไม่ได้ให้ความสามารถในการแทรกจุดติดตามเมื่อรันไทม์โดยทางโปรแกรม
API และฟังก์ชันการทำงานทั้งหมดที่ใช้โดย dtrace.sys เป็นการเรียกใช้ที่บันทึกไว้
Microsoft ได้ติดตั้งไดรเวอร์พิเศษสำหรับ Windows 10 ซึ่งช่วยให้สามารถทำหน้าที่ตรวจสอบระบบได้หลายอย่าง ไดรเวอร์จะรวมอยู่ใน Windows 10 เวอร์ชัน 1903 นอกจากนี้ DTrace ในปัจจุบันต้องการให้ Windows เริ่มต้นด้วยการเปิดใช้งานเคอร์เนลดีบักเกอร์
ซอร์สโค้ดสำหรับเครื่องมือ DTrace ที่พอร์ตมีอยู่ใน GitHub เยี่ยมชมเพจ DTrace บน Windowsภายใต้โครงการ OpenDTrace บน GitHub ให้ดูครับ
สารบัญ ซ่อน ตั้งค่า DTrace ใน Windows 10 การใช้ DTraceตั้งค่า DTrace ใน Windows 10
ข้อกำหนดเบื้องต้นสำหรับการใช้คุณลักษณะ
- ข้อมูลภายในของ Windows 10สร้าง 18342หรือสูงกว่า
- มีจำหน่ายเฉพาะที่x64Windows และรวบรวมข้อมูลการติดตามสำหรับกระบวนการ 64 บิตเท่านั้น โปรแกรม Windows Insider คือเปิดใช้งานและกำหนดค่าแล้วด้วยบัญชี Windows Insider ที่ถูกต้อง
- ไปที่การตั้งค่า -> อัปเดตและความปลอดภัย -> โปรแกรม Windows Insider เพื่อดูรายละเอียด
คำแนะนำ:
- ชุดการกำหนดค่า BCD:
- bcdedit /ตั้งค่า dtrace บน
- โปรดทราบว่าคุณต้องตั้งค่าตัวเลือก bcdedit อีกครั้ง หากคุณอัปเกรดเป็น Insider build ใหม่
- สิ่งนี้จะติดตั้งส่วนประกอบโหมดผู้ใช้ ไดรเวอร์ และแพ็คเกจคุณสมบัติเพิ่มเติมตามความต้องการที่จำเป็นสำหรับ DTrace เพื่อให้ทำงานได้
- ทางเลือก: อัปเดตไฟล์ตัวแปรสภาพแวดล้อม PATHที่จะรวมC:ไฟล์โปรแกรมDTrace
- ตั้งค่า PATH=%PATH%;'C:Program FilesDTrace'
- ติดตั้งเส้นทางสัญลักษณ์
- สร้างไดเร็กทอรีใหม่สำหรับสัญลักษณ์แคชในเครื่อง ตัวอย่าง: mkdir c:สัญลักษณ์
- ชุด_NT_SYMBOL_PATH=srv*C:สัญลักษณ์* http://msdl.microsoft.com/download/สัญลักษณ์
- DTrace จะดาวน์โหลดสัญลักษณ์ที่จำเป็นจากเซิร์ฟเวอร์สัญลักษณ์และแคชไปยังพาธในเครื่องโดยอัตโนมัติ
ไม่จำเป็น:ตั้งค่าดีบักเกอร์เคอร์เนลการเชื่อมต่อกับเครื่องเป้าหมาย ( ลิงค์ MSDN- นี่คือเท่านั้นจำเป็นหากคุณต้องการติดตามเหตุการณ์เคอร์เนลโดยใช้ FBT หรือผู้ให้บริการรายอื่น - โปรดทราบว่าคุณจะต้องปิดการใช้งาน Secureboot และ Bitlocker บน C: (หากเปิดใช้งาน) หากคุณต้องการตั้งค่าเคอร์เนลดีบักเกอร์
การใช้ DTrace
- เปิดพร้อมท์คำสั่งที่ยกระดับ
- ดำเนินการคำสั่งใดคำสั่งหนึ่งต่อไปนี้:|_+_|
คำสั่งdtrace -lvn syscall:::จะแสดงรายการโพรบทั้งหมดและพารามิเตอร์ที่มีอยู่จากผู้ให้บริการ syscall
ต่อไปนี้คือผู้ให้บริการบางรายที่พร้อมใช้งานบน Windows และผู้ให้บริการเหล่านี้
- syscall – การเรียกระบบ NTOSfbt (การติดตามขอบเขตของฟังก์ชัน) – รายการฟังก์ชันเคอร์เนลและ returnpid – การติดตามกระบวนการในโหมดผู้ใช้ เช่นเดียวกับ FBT โหมดเคอร์เนล แต่ยังอนุญาตให้ใช้เครื่องมือของฟังก์ชันที่กำหนดเอง offsets.etw (การติดตามเหตุการณ์สำหรับ Windows) – อนุญาตให้กำหนดโพรบสำหรับ ETW ผู้ให้บริการนี้ช่วยใช้ประโยชน์จากเครื่องมือระบบปฏิบัติการที่มีอยู่ใน DTrace
- นี่เป็นการเพิ่มเติมอย่างหนึ่งที่เราได้ทำกับ DTrace เพื่ออนุญาตให้เปิดเผยและรับข้อมูลทั้งหมดที่ Windows ให้ไว้แล้ว ส.ท.ว-
สามารถดูสคริปต์ตัวอย่างเพิ่มเติมที่ใช้กับสถานการณ์ Windows ได้ในส่วนนี้ ไดเรกทอรีตัวอย่าง-
แหล่งที่มา: ไมโครซอฟต์