本文將介紹如何下載、安裝和運行 NetBeans Dynamic Tracing (DTrace) GUI 插件。NetBeans DTrace GUI 插件是一個用於運行 DTrace 腳本的圖形用戶界面(Graphical User Interface,GUI),並且可以安裝在 SunTM Studio 12 IDE、NetBeansTM IDE 5.5、NetBeans IDE 5.5.1 和 NetBeans IDE 6.0 中。
我們可以通過 GUI 運行 D 腳本,即使它們嵌入在 shell 腳本中沒有關系。事實上,DTrace GUI 插件可以運行 DTraceToolkit 包中的所有 D 腳本。DTraceToolkit 是由 OpenSolaris DTrace 社區開發的一組實用的文檔腳本。
得益於其優秀的體系結構設計,我們可以方便地擴展和定制 NetBeans DTrace GUI 插件。
GUI 包由兩個組件構成:NetBeans 插件和 DTraceScripts 目錄。
可以輕易地將 NetBeans DTrace GUI 插件安裝到 Sun Studio 12 IDE、NetBeans IDE 5.5、NetBeans IDE 5.5.1 和 NetBeans IDE 6.0 中。
DTraceScripts 目錄包含一些子目錄。每個子目錄都含有一些 D 腳本。D 腳本主要根據 DTrace 提供者進行分類。可以通 shell 命令行將新的 D 腳本復制到已有子目錄中,可以將它復制到 DTraceScripts 目錄下面新創建的子目錄中。還可以在 IDE 中創建並保存新的 D 腳本。
系統和軟件需求及下載
下面列出了系統和軟件需求:
DTrace 工具只支持 SolarisTM 10 和 Solaris 11 操作系統。
NetBeans DTrace 插件可在 Sun Studio 12 IDE 和 NetBeans IDE 中運行。
NetBeans IDE 5.5、NetBeans IDE 5.5.1. 和 NetBeans IDE 6.0 均可從 http://www.netbeans.org/ 網站下載。
Sun Studio 12 IDE 可從
需要在 /etc/user_attr 文件中設置您的權限。比如說,以下內容的作用是在運行 DTrace 的機器上設置 DTrace 權限。nassern::::defaultpriv=basic,dtrace_user,dtrace_proc,dtrace_kernel
這些權限將在用戶登錄機器時生效。
有關用戶權限的詳細信息,請閱讀
如何安裝 NetBeans DTrace GUI 插件安裝步驟——適用於 NetBeans IDE 5.5、NetBeans IDE 5.5.1 和 SunStudio 12 IDE
啟動 NetBeans IDE 5.5、NetBeans IDE 5.5.1 或 Sun Studio 12 IDE.
選擇 Tools > Update Center。
在 Update Center 向導的 Select Location of Modules 頁面中,選中 NetBeans Update Center Beta(適用於 NetBeans IDE 5.5 或 NetBeans IDE 5.5.1)和 Sun Studio Update Center(適用於 Sun Studio 12 IDE)復選框(如果未選中)。然後單擊 Next 按鈕。
在 Select Modules to Install 頁面中,選擇 Available Updates and New Modules 列表中的 DTrace,單擊 Add 按鈕。然後單擊 Next 按鈕。
接受許可協議。
在 Download Modules 頁面中,等待下載完成並單擊 Next 按鈕。
在 View Certificates and Install Modules 頁面中,單擊 Finish 按鈕。
NetBeans DTrace GUI 插件已經安裝在 NetBeans IDE 5.5 或 NetBeans IDE 5.5.1 中。請閱讀 安裝 DTraceScripts 文件 部分安裝 DTraceScripts 文件。
安裝步驟——適用於 NetBeans IDE 6.0
啟動 NetBeans IDE 6.0。
選擇 Tools > Plugins。
在 Plugins 窗口的 Available Plugins 選項卡中,單擊 DTrace 復選框。(如果可用插件列表中沒有出現 DTrace,則單擊 Reload Catalog 按鈕並重試。)然後單擊 Install 按鈕。
在 NetBeans IDE Installer 窗口中,單擊 Next 按鈕。
接受許可協議並單擊 Install 按鈕。
單擊 Finish 按鈕。
關閉 Plugins 窗口。
NetBeans DTrace GUI 插件已經安裝到 NetBeans IDE 6.0 中。下一節將演示如何安裝 DTraceScripts 文件。
安裝 DTraceScripts 文件
如果自己運行 IDE,則需要將 DTraceScripts.tar 文件安裝在主目錄中。如果使用根用戶運行 IDE,則需要將 DTraceScripts.tar 文件安裝在根目錄中。
安裝好 DTrace GUI 插件後,DTraceScripts.tar 文件將位於主目錄下的 .netbeans/netbeans_release 目錄或 .sunstudio/12.0-SunOS-platform 目錄中。比如說,/home/nassern/.netbeans/6.0/dtrace-gui-102007。
要安裝 DTraceScripts.tar 文件,請遵循以下步驟:
在主目錄或根目錄下,使用 tar 命令解壓文件。比如說:tar -xvf /home/nassern/.netbeans/6.0/dtrace-gui-102007/DTraceScripts.tar
需要將所有腳本的文件權限(file permission)設置為 -rwxr-xr-x 或 755。如果必要,可以使用 chmod 命令設置適當的文件權限。比如說:chmod -R 755 DTraceScripts
DTrace GUI 的安裝已經完成。要打開 DTrace GUI,請選擇 Window > DTrace。
DTrace GUI 也可以從 http://plugins.netbeans.org 頁面下載。
如何在 DTrace GUI 環境中運行 D 腳本
要在 DTrace GUI 中運行 D 腳本,請遵循以下步驟:
啟動 Sun Studio 12 IDE、NetBeans IDE 5.5、NetBeans IDE 5.5.1 或 NetBeans IDE 6.0。
選擇 Windows > DTrace。DTrace 選項卡將在 IDE 的左側打開。
在 DTrace 面板的 Category 列表框中選擇一個 D 腳本,然後單擊 Start 按鈕。如下圖所示。
所選 D 腳本的輸出將顯示在 Output 窗口中。一些腳本在單擊 Stop 按鈕之前不會生成任何輸出。
可以同時運行多個 D 腳本。
單擊 Stop 按鈕停止上次啟動的 D 腳本。
要保存腳本的輸出,在 Output 窗口中單擊鼠標右鍵並選擇 Save As。
高級選項
要使用高級選項,請單擊 DTrace GUI 中的 Advanced。
可以使用 View/Edit 選項在 Editor 窗口中顯示所選的 D 腳本。
要創建一個新的 D 腳本,請遵循以下步驟:
單擊 Advanced 並選擇 Create new script 選項。
在 New Script 對話框中,鍵入新 D 腳本的名稱,名稱不用包含 .d 擴展。一個空的 D 腳本將創建在所選類別(目錄)中。比如說,下圖顯示了如何在 Proc 目錄中創建一個空的 hello D 腳本。
單擊 Advanced 並選擇 View/Edit 選項,在 Editor 窗口中顯示最近創建的(空的)D 腳本。
在 Editor 窗口中輸入新 D 腳本的代碼並保存文件。下圖顯示了 hello.d 腳本的 DTrace 代碼。
可以通過 DTrace GUI 運行最近創建的 hello.d 腳本。
配置面板列出了可為各個所選 D 腳本指定的可選參數。
pid 正在運行的進程的進程 id Script args D 腳本自變量 executable 可執行程序的絕對路徑名稱 executable args 可執行程序的自變量 output 忽略此字段 description 可插入此字段的幫助消息
為了創建持久性數據,用戶指定的參數和屬性將存儲在一個 .xml 文件中。資源文件(property file)與 D 腳本文件的名稱相同,不過其擴展名為 .xml。換句話說,用戶數據將保存在文件中,以便於 D 腳本和 IDE 在以後調用。
下圖顯示了如何運行 memleak.d 腳本。memleak.d 腳本可用於檢測應用程序中的內存洩漏。memleak.d 腳本需要兩個參數:可執行程序的絕對路徑名稱和 D 腳本模塊名稱。在下面的示例中,/home/nassern/test/umem/hello 是可執行程序的絕對路徑名稱,而 libc 是模塊名稱。
局限性和已知 bug
目前,單擊 Stop 按鈕將停止用戶上次啟動的 D 腳本。這將在下一版發行中得到修改。Stop 操作將停止符合以下條件的正在運行的腳本:用戶選擇了該腳本的輸出選項卡。
雙擊所選的 D 腳本並不會在 Editor 窗口中顯示該 D 腳本。這將在下一版發行中得到修復。目前,必須使用 Advanced View/Edit 選項在 Editor 窗口中顯示 D 腳本。