希望有需要的人可以看得懂
.NET Debugging Demos
這一系列的Debugging Demos目的在協助體驗Debugging在.Net application中最常見的Hang/performance, memory and crash 狀況。
因為範例是用ASP.NET,所以在開發及範例的環境下需要有IIS以及.net framework 2.0,
所有的範例都是使用同一個網站。
Note: 這些範例將會導致高CPU使用率,高記憶體使用率以及Crash,所以必須確保你只有安裝這個範例,避免其他的網站或應用程式所發生的hanging及Crashing干擾學習Debugging。
Installation
- 下載並安裝範例BuggyBits.zip
- 在IIS上建置一個叫做BuggyBits的虛擬目錄
- 打開IIS管理員(若無,必須從控制台→Windows功能去新增)
- 直接將BuggyBits解壓到C:\inetpub\wwwroot下,然後在IIS裡把他轉成應用程式
- 瀏覽 http://localhost/BuggyBits/default.htm 確定是否正確
- 瀏覽 http://localhost/BuggyBits/CompanyInformation.aspx 確定Aspx是否可運行
- 下載Debugging tool http://www.microsoft.com/whdc/devtools/debugging/default.mspx
- 直接下載 Install Debugging Tools for Windows as a Standalone Component
- 用系統管理員執行sdksetup.exe
- 確定程式集裡出現Window Kits資料夾且Debugging tools for Windows(X86 or X64 )資料夾裡有WinDbg.exe
- 執行BuggyBits資料夾裡的InternetConnections.reg 以更改在IE的環境下,對同一個網頁的連線數(如果你覺得不爽,所有的reg檔都能用文件編輯,改回你要的樣子....但我不會改)
- 如果你還是用WinXP或Win2003恭喜你可以裝tinyget (從 IIS6.0 resource kit),但是我不行!所以選備!
Terminology and tools
每個demo/lab將會假設你都很熟悉下列的工具:
Windbg | 安裝自debugging tools for windows. 根據預設他會被安裝在: C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x64 or C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x86 |
Adplus | 安裝自debugging tools for windows. 一種用來自動取得memory dumps的Script |
Debuggers directory | C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x64 or C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x86 |
SOS | .Net Framework Debugger的擴充功能指的是 C:\Windows\Microsoft.NET\Framework\v2.0.50727 裡的SOS.dll檔 你可以將它複製到C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x64 or x86底下 |
Loading SOS | 在執行WinDbg.exe時可以藉由輸入.load sos 或 .loadby sos mscorwks指令將其載入WinDbg所開啟的Dump資料,前者需將SOS.dll複製於Debugger目錄下後者則不必 |
Setting up symbols | 為了native/non-dotnet 的Debugging 以及觀看stack中non-dotnet 的部分,Symbols是不可或缺的。可以從Why do I get weird function names on my stack? (a discussion on symbols)中取得更多的資訊。 設定在WinDbg中Symbol的路徑的方法有2: 1.在WinDbg中執行 .symfix D:\Symbols*http://msdl.microsoft.com/downloads/symbols 以及 .reload 2.在WinDbg工具列中→File→Symbol Search Path中設定 SRV*D:\Symbols*http://msdl.microsoft.com/downloads/symbols D:\Symbols 是自己指定的存放Symbols的位置,如果在WinDbg中選擇了save workspace information,所有的設定將會被保留下來。 |
Tinyget | 主要是用來製作測試腳本~只支援IIS6 "TinyGet 5.2(TinyGet.exe) "是一個支援多執行緒及迴圈的 HTTP用戶端的指令執行工具。可以利用來測試或疑難排解 HTTP用戶端與伺服器端的溝通。藉由TinyGet,可以藉由更改不同元件的設定以自訂測試需求,包含驗證方法、Http版本以及輸出格式。同樣地可以利用scripts具體描述迴圈及多執行緒。 可以從IIS 6.0 資源套件工具 取得更多資訊 |
部分SOS以及WinDbg指令是非常有用的。下列的文章將會介紹需多有用的參考資訊:
Available Labs:
範例下載:BuggyBits.zip
沒有留言:
張貼留言