2013年3月6日 星期三

.NET Debugging Demos - Information and setup instructions

翻譯自Tess  .NET Debugging Demos - Information and setup instructions
希望有需要的人可以看得懂

.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


  1. 下載並安裝範例BuggyBits.zip
  2. 在IIS上建置一個叫做BuggyBits的虛擬目錄
    •    打開IIS管理員(若無,必須從控制台→Windows功能去新增)
    •     直接將BuggyBits解壓到C:\inetpub\wwwroot下,然後在IIS裡把他轉成應用程式
  3. 瀏覽 http://localhost/BuggyBits/default.htm 確定是否正確
  4. 瀏覽 http://localhost/BuggyBits/CompanyInformation.aspx 確定Aspx是否可運行
  5. 下載Debugging tool http://www.microsoft.com/whdc/devtools/debugging/default.mspx
  6. 執行BuggyBits資料夾裡的InternetConnections.reg 以更改在IE的環境下,對同一個網頁的連線數(如果你覺得不爽,所有的reg檔都能用文件編輯,改回你要的樣子....但我不會改)
  7. 如果你還是用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指令是非常有用的。下列的文章將會介紹需多有用的參考資訊:

  1. Install Windbg
  2. Getting started - Part I
  3. Getting started - Part II
  4. Advanced commands

Available Labs: 




範例下載:BuggyBits.zip