欧美日韩激情电影,久久亚洲精品毛片,日日夜夜天天综合入口,亚洲激情六月丁香

您的位置: 首頁 >商業 >

Windows10如何用DTrace跟蹤那個煩人的bug

2020-04-08 16:25:25 編輯: 來源:
導讀 如果您一直使用Unix或Linux構建復雜的應用程序,那么您應該熟悉DTrace。它最初是由Sun開發的,它是一個動態跟蹤工具,允許您深入了解正在運行的系統中發生的許多事情,從硬件到操作系統,再到您的應用程序。這個強大的工具為您提供了許多信息,可以幫助您調試和優化代碼。 使用命令行和它自己的腳本語言D,您可以編寫跟蹤程序,將操作分配給插裝探測。您可以將DTrace探測器視為連接到操作系統或代碼的萬

如果您一直使用Unix或Linux構建復雜的應用程序,那么您應該熟悉DTrace。它最初是由Sun開發的,它是一個動態跟蹤工具,允許您深入了解正在運行的系統中發生的許多事情,從硬件到操作系統,再到您的應用程序。這個強大的工具為您提供了許多信息,可以幫助您調試和優化代碼。

使用命令行和它自己的腳本語言D,您可以編寫跟蹤程序,將操作分配給插裝探測。您可以將DTrace探測器視為連接到操作系統或代碼的萬用表連接,等待滿足某個條件,然后記錄適當的信息。DTrace的優點之一是能夠使用多個探測,提供了您需要的工具來理解事件之間的關系,并幫助您跟蹤傳統調試工具無法查明的復雜bug。

許多調試工具都會對代碼的性能產生影響,而DTrace的設計目標是盡可能減少影響。這是一個重要的區別,它允許您擁有數百甚至數千個探測。這是一個可以很好地與現代分布式應用程序一起工作的模型,因為它展示了微服務是如何運行的,并為您提供了您以前沒有的可觀察性。

DTrace的D語言被設計成類似于C語言,所以它并不難學。腳本中使用的語法與命令行調用中使用的語法相同,命令行調用提供了一種將探測放入特定操作的快速方法,可以在屏幕上顯示結果。命令行可以幫助測試和調試腳本;您可以在將探測添加到更復雜的集合之前交互式地嘗試探測,了解可用于驅動其他探測的輸出格式。

微軟現在已經將DTrace移植到Windows上,構建在開放的DTrace代碼和規范的基礎上,增加了特定的Windows特性,支持對Windows事件跟蹤(ETW)、Windows系統調用和Windows進程id的跟蹤。雖然Windows具有與Unix和Unix派生的操作系統非常不同的體系結構模型,但是您應該發現DTrace可以很好地與Windows配合使用,特別是在使用特定于Windows的跟蹤功能時。

雖然Windows有自己的ETW跟蹤工具,但它們是靜態的,需要構建到您的代碼中。DTrace是動態的,它的優點是能夠在運行時工作,允許您快速地測試和跟蹤運行中的代碼。甚至可以快速測試生產系統,獲得調試問題所需的詳細信息,完成后刪除DTrace工具和配置。

用戶通過DTrace命令與DTrace交互,DTrace命令是DTrace引擎的通用前端。D腳本被發送到DTrace內核組件執行,有時稱為DIF虛擬機。Traceext。sys是微軟添加的一個新的內核擴展驅動程序,它允許Windows公開DTrace提供跟蹤所依賴的功能。

安裝DTrace不像安裝傳統的Windows應用程序那么容易。這是一個非常低級的工具,需要重新啟動幾次才能運行。首先從Microsoft下載適當版本的DTrace。目前支持的版本只在windows10 2004或更高版本上運行;1904年和1909年的早期存檔版本仍然可以下載,但不再支持。

下載后,安裝DTrace應用程序,然后使用BCDEdit將其添加到Windows啟動配置中。你可能需要關閉BitLocker,如果你使用它來保護你的電腦的開機配置,否則你可能需要在下次開機時輸入你的BitLocker密鑰。

接下來,將您的Windows PATH環境變量設置為引用DTrace,并為任何調試符號添加一個新的環境變量。這些文件將在需要時從微軟下載。最后,確保您已經設置了虛擬安全模式來跟蹤Windows內核邊界。

參見:讓Windows 10以你想要的方式工作的20個專業提示(免費PDF)(TechRepublic)

許多開發人員在虛擬機上進行測試,只要DTrace支持嵌套虛擬化,它就會在VM中運行。您可以在PowerShell中實現這一點,啟用虛擬化擴展,然后重新啟動主機PC。

一個重要的警告是,為了讓DTrace正常工作,您需要以本地管理帳戶的身份運行,所以如果您使用Microsoft帳戶登錄到Windows 10,請準備好添加一個新的本地用戶。當您更新Windows Insider構建時,請記住通過BCDEdit重新啟用DTrace。

準備好運行DTrace之后,您可以使用命令行單行工具查看可用的探測并嘗試簡單的查詢,從而掌握D命令的結構。一旦您熟悉了這些,您就可以開始構建自己的腳本了。Microsoft在其DTrace GitHub頁面上提供了一節樣例腳本,它可以幫助您開始跨應用程序的跟蹤。值得花點時間讀一本關于D的書,因為編程跟蹤腳本可能很復雜,尤其是在很可能異步觸發探測的情況下。可以從dtrace.org網站上的免費動態跟蹤指南入手。雖然它在技術上是為illumos(一個基于Open Solaris的開源操作系統)設計的,但是它的概念和過程可以被轉換成Windows。

示例腳本被分成多個組,查看常見的Windows跟蹤場景。您將發現一些用于查看磁盤操作,另一些用于文件、內存和與ETW一起使用。下載代碼并在您的系統上運行它,然后針對您的特定需求創建自己的版本。

結果可能很難分析,尤其是當你面對充滿數字的文件時。使用Excel或PowerBI之類的工具來構建可視化和探索跟蹤數據,以幫助理解DTrace結果,這是一個好主意。

DTrace是一個強大的工具,很高興看到微軟將它引入Windows。但它顯然不適合初學者,安裝相對復雜,學習曲線陡峭。一旦您掌握了它的D語言,并學習了如何選擇和實現探測,那么您就可以研究應用程序之間以及與Windows之間的交互方式了。如果您試圖跟蹤一個棘手的錯誤,這是一個工具,打開一個全新的窗口到窗口。

通過閱讀這些Windows和Office提示、技巧和備忘單,成為你公司的微軟內部人。星期一和星期三送貨


免責聲明:本文由用戶上傳,如有侵權請聯系刪除!

最新文章

精彩推薦

圖文推薦

點擊排行

2016-2022 All Rights Reserved.平安財經網.復制必究 聯系QQ   備案號:

本站除標明“本站原創”外所有信息均轉載自互聯網 版權歸原作者所有。

郵箱:toplearningteam#gmail.com (請將#換成@)

主站蜘蛛池模板: 宜章县| 康定县| 香河县| 拉孜县| 北安市| 奉节县| 南投县| 友谊县| 佛坪县| 钟山县| 广德县| 碌曲县| 开江县| 石台县| 平顶山市| 怀远县| 卓尼县| 外汇| 二连浩特市| 汽车| 景德镇市| 红安县| 蓬安县| 德令哈市| 和顺县| 滦平县| 双柏县| 开封市| 鄂伦春自治旗| 安徽省| 罗城| 平潭县| 阿合奇县| 石台县| 衡南县| 班玛县| 固原市| 临江市| 江源县| 尼玛县| 黄平县|