在上一篇的譯文中,主要講解了Tess的debug系列概況以及debugger tools的安裝和設置。在翻譯下一篇文章之前,我打算先和大家講解下windbg,sos,adplus和tinyget的一些常見命令。了解了這些以後,你將會更加容易的理解以後的文章。
ASP.NET Debug系列之一:環境搭配
1.adplus
這個腳本工具是和debugger tools一起安裝的。可以自動的幫你監視某個程序,並在你設定的條件下生成一個dump文件保存在debugger目錄下。使用這些工具時,都需要將命令提示符窗口切到debugger目錄。常見的用法如下:
adplus -hang-pnw3wp.exe
在生成hang狀態下的dump時,adplus都會立即產生dump文件。在輸入此命令並按enter後,此命令將立即獲取一個w3wp.exe的內存切片。但是此命令會彈出一個確認窗口,如果你覺得這個比較麻煩的話,你可以在最後加上 –quiet 命令來避免窗口的彈出。
adplus-hang-p1234 –quiet
相信你很快就能發現,上行命令是使用的process name,而這個命令是使用的process id。同時,它可以直接生成dump,不會彈出確認窗口。
adplus-crash-pnw3wp.exe
此命令是獲取程序crash時的dump。它不同於hang立即得到dump,它會一直attach在w3wp.exe程序上,直到w3wp.exe程序crash。其它類似參數的效果都同上。
當然,如果你使用Vista的話,你可以很方便的在任務管理器(task manager)中通過右鍵 Create dump file獲取dump文件。
2. tinyget
這個工具是用來對一個網站進行壓力測試的。最常用的命令是:
tinyget -srv:localhost -uri:/BuggyBits/FeaturedProducts.aspx -threads:30 -loop:50
該命令表示同時啟動30個線程發送50個請求到本地IIS上BuggyBits站點的FeaturedProducts頁面。你也可以在命令窗口中使用”tinyget /?”查看更多詳細的命令。
3. windbg
Windbg的命令都是一點號(.)來開始的,它不同於歎號開始的命令(!),歎號開始的命令都是sos.dll中的命令。
.load sos
每次打開windbg調試.net程序的dump時,我們首先要輸入此命令。它的用途是使得windbg可以支持托管代碼(managed code)的調試。
.time
查看dump文件生成時的時間,其中包括系統當前時間,開機總時間,程序運行總時間,程序運行在內核態總時間以及用戶態總時間。