Windows Tips & News

DTrace ב-Windows מקבל את עדכוני 20H1 עם תמיכת ARM64

DTrace הוא כלי איתור באגים ואבחון הפופולרי בקוד פתוח. זה נבנה במקור עבור Solaris, והפך זמין עבור Linux, FreeBSD, NetBSD ו-macOS. מיקרוסופט העבירה אותו ל-Windows, ומוסיפה לו חלק מהעדכונים עם עדכון תכונה 20H1.

DTrace היא מסגרת מעקב דינמית המאפשרת למנהל או למפתח לקבל מבט בזמן אמת לתוך מערכת במצב משתמש או גרעין. ל- DTrace יש שפת תכנות ברמה גבוהה ועוצמתית בסגנון C המאפשרת לך להוסיף באופן דינמי נקודות מעקב. באמצעות נקודות העקיבה המוכנסות באופן דינמי אלה, אתה יכול לסנן על תנאים או שגיאות, לכתוב קוד לניתוח דפוסי נעילה, לזהות מבוי סתום וכו'.

ב-Windows, DTrace מרחיב את מעקב אחר אירועים עבור Windows (ETW) שהוא סטטי ואינו מספק את היכולת להוסיף נקודות מעקב באופן פרוגרמטי בזמן ריצה.

כל ממשקי ה-API והפונקציונליות המשמשים את dtrace.sys הם קריאות מתועדות.

מיקרוסופט הטמיעה דרייבר מיוחד עבור Windows 10 המאפשר לבצע מספר תפקידי ניטור מערכת. מנהל ההתקן מובנה ב-Windows 10 החל מגרסה 1903.

החל ב-Windows 10 Insider build 19041.21, DTrace מגיע עם השיפורים הבאים.

תצוגה מקדימה של ARM64

כן זה נכון! DTrace תומך כעת ב-ARM64 במצב תצוגה מקדימה. ה-ARM64 MSI זמין בקישור ההורדה המפורט למעלה.

אתה יכול להשתמש בו על שלך Surface Pro X מפעיל את המבנה האחרון של Windows 10 Insider Preview (20H1), החל מ- 19041.21.

DTrace ב-Surface Pro X

מצב משתמש Stackwalk

בתצוגה המקדימה, מתקן ההליכה ב-DTrace הוגבל למצב Kernel (מחסנית). עדכון זה מוסיף תמיכה למתקן stackwalk במצב משתמש (ustack). כמו מחסנית, מתקן ustack תואם באופן מלא למפרט DTrace בקוד פתוח. ניתן להפעיל אותו בשלוש דרכים על ידי ציון מסגרות (עומק) וגודל (להתעלם ממנו לעת עתה) או ריק.

  • Ustack (nframes, גודל)
  • Ustack (nframes)
  • Ustack()

בעוד ש-ustack () יכול לקבוע את הכתובת של המסגרת הקוראת כאשר בדיקה מופעלת, מסגרות המחסנית לא יתורגמו לסמלים עד שפעולת ustack () תעובד במצב משתמש על ידי צרכן DTrace. הורדת סמלים יכולה להאט את הפלט. לפיכך, עדיף להשתמש במתקן זה עם סמלים במטמון מקומי כמו להלן.

dtrace -n "profile-1ms /arg1/ {ustack (50, 0); יציאה (0);} " -y C:\symbols. dtrace: התיאור 'profile-1ms' תואם בדיקה אחת. פונקציית מזהה מעבד: שם 0 3802 :profile-1ms ntdll`ZwAllocateVirtualMemory+0x14 ntdll`RtlAllocateHeap+0x3ded ntdll`RtlAllocateHeap+0x763 ucrtbase`malloc_base+0

תמיכה בשידור חי

Windows משתמש בדרך כלל במשהו שנקרא מזבלה חיה כדי לסייע באבחון מהיר של בעיות. dumps Live מסייעים בפתרון בעיות הכרוכות במספר תהליכים או בבעיות רחבות המערכת ללא זמן השבתה. ב-20H1, ניתן להשתמש ב-DTrace ב-Windows כדי ללכוד dump חי מתוך סקריפט D באמצעות lkd() מתקן DTrace. מקרה שימוש נפוץ במתקן זה הוא מכשיר נתיב שגיאה (כמו קוד החזרה מצביע על כשל) וללכוד dump חי ממש בנקודת הכשל לאבחון מתקדם. למידע נוסף על תמיכת dump Live, ראה DTrace Live Dump.

dtrace -wn "syscallreturn { if (arg0 != 0xc0000001UL) { lkd (0); printf(\" מפעיל dump Live \n \");exit (0); }}" dtrace: התיאור 'syscallreturn' התאים ל-1411 בדיקות. dtrace: מאפשר פעולות הרסניות. פונקציית מזהה מעבד: שם 0 181 NtDeviceIoControlFile: return מפעיל dump Live dir c:\Windows\LiveKernelReports לנפח בכונן C אין תווית. המספר הסידורי של הכרך הוא 70F4-B9F6 Directory של c:\Windows\LiveKernelReports 11/05/2019 17:20<DIR>. 11/05/2019 17:20 <DIR>.. 11/05/2019 17:19 <DIR> DTRACE. 11/05/2019 17:20 53,395,456 DTRACE-20191105-1720.dmp. 

ETW Tracing

ETW מעקב הוא הכלי הנפוץ ביותר לניפוי באגים ב-Windows. בתצוגה המקדימה של DTrace ב-Windows 19H1, הוספנו תמיכה במכשירי עזר לאירועים שנרשמו עקבות ובאו לידי ביטוי באמצעות ספק ETW.

ב-20H1, שיפרנו עוד יותר את המתקן הזה כדי ליצור אירועי ETW חדשים תוך כדי תנועה מתוך סקריפט D באמצעות ETW_Trace() מִתקָן. זה עוזר במצבים שבהם אירועי ETW קיימים אינם מספיקים וברצונך להוסיף נקודות מעקב נוספות של ETW מבלי לשנות את קוד הייצור.

למידע נוסף על ETW_Trace מתקן ו ספק ETW, לִרְאוֹת DTrace ETW.

/* הפעלת הדוגמה של ספק GitHub ETW (קישור למטה) כדי להדפיס אירוע מידע על זיכרון צומת. https://github.com/microsoft/DTrace-on-Windows/blob/master/samples/windows/etw/numamemstats.d. */ dtrace -qs numamemstats.d מזהה מחיצה: 0. ספירה: 1. מספר צומת: 1. m_nodeinfo { uint64_t TotalPageCount = 0x1fb558 uint64_t SmallFreePageCount = 0x41 uint64_t SmallZeroPageCount = 0 uint64_t MediumFreePageCount = 0 uint64_t MediumZeroPageCount = 0 uint64_t LargeFreePageCount = 0 uint64_t LargeZeroPageCount = 0 uint64_t HugeFreePageCount = 0 uint64_t HugeZeroPageCount = 0. }

אם אתה מעוניין להתקין DTrace, בדוק כיצד ניתן לעשות זאת פה.

אתה יכול להוריד את חבילת DTrace MSI המעודכנת מכאן.

הנה זה קוד מקור ו סקריפטים מתקדמים.

מָקוֹר

Microsoft Office 2021 מגיע ב-5 באוקטובר 2021

Microsoft Office 2021 מגיע ב-5 באוקטובר 2021

מוּמלָץ: לחץ כאן כדי לתקן בעיות של Windows ולמטב את ביצועי המערכתבעוד פחות משלושה שבועות, ב-5 באו...

קרא עוד

לקוואלקום יש הסכם בלעדי עם Microsoft עבור Windows ב-ARM

לקוואלקום יש הסכם בלעדי עם Microsoft עבור Windows ב-ARM

מוּמלָץ: לחץ כאן כדי לתקן בעיות של Windows ולמטב את ביצועי המערכתמדווח XDA שלקוואלקום יש הסכם בלע...

קרא עוד

Windows 10 21H1 לא מביא שינויים בדרישות החומרה

Windows 10 21H1 לא מביא שינויים בדרישות החומרה

מוּמלָץ: לחץ כאן כדי לתקן בעיות של Windows ולמטב את ביצועי המערכתעדכון התכונה הראשון ל-Windows 10...

קרא עוד