.NET Debugging Demos

原文 windows

http://blogs.msdn.com/tess/pages/net-debugging-demos-information-and-setup-instructions.aspx 緩存

.Net 調試舉例——安裝指南 多線程

這是一系列調試例程,幫您得到關於dotnet 應用程序的掛起,性能,內存或崩潰等類型問題的第一手經驗。 asp.net

這個示例是基於asp.net技術的,這就意味着安裝此示例的開發環境中須要 iis 和 .net framework 2.0。 工具

每一個新的示例會有一些基礎指南,但我仍是故意的保留的其簡潔性,以便你有更多的機會來探索本身的想法,同時若是您有其餘想法我也會給必定的提示。 性能

若是有充足的時間,我會將新的示例發佈在 http://blogs.msdn.com/tess/ (我計劃每一個禮拜發佈一個新示例) 測試

全部的示例將使用同一個站點,所以全部的示例均安裝在一個應用程序中。 spa

注意:這些示例中將會引發高CPU使用率,高內存利用率和崩潰,所以請確保這些示例僅僅安裝在開發環境中,系統掛起和服務崩潰不會影響到其餘人。 .net

安裝 命令行

一、 下載示例站點(已附錄在本帖後),解壓縮文件到硬盤中的文件夾(備註:已經上傳了一個不須要3.5 的新版本)

二、 添加一個新的iis虛擬目錄,取名 BuggyBits

三、 定位到 http://localhost/BuggyBits/Default.htm ,確保虛擬目錄設置正確;

四、 瀏覽公司信息站點:http://localhost/BuggyBits/CompanyInformation.aspx 以確保iis支持 aspx頁面;

五、 從以下網址中下載並安裝windows調試工具:

http://www.microsoft.com/whdc/devtols/debugging/default.aspx

六、 雙擊運行InternetConnections.reg,此文件做用於註冊表(注意:如何註冊表的風險由您本身承擔,若是擔憂註冊表文件穩定,可使用 notepad 打開該文件並手動修改內容),用來改變外鏈接數量,也可以使用Internet Explorer修改一樣的站點。

七、 安裝 tinyget(隨IIS6.0資源包一塊兒安裝 http://support.microsoft.com/kb/840671 ),咱們可使用該工具對部分文件進行壓力測試以便產生掛起和內存泄漏問題;

工具和術語

每一個示例/實驗中,假設您對以下的技術很是熟悉:


Windbg

Windows系統上安裝的調試器

該工具將默認安裝到調試目錄 」c:/program files/debugging tools for windows」

Adplus

自動獲取內存存儲的腳本,也安裝在調試目錄中。

Debuggers directory

默認目錄: c:/program files/debugging tools for windows

SOS

調試託管的Dotnet擴展工具

該文件是隨着framework 安裝的,能夠在framework安裝目錄 c:/windows/Microsoft.NET/Framework/v2.0.5277 中找到該文件,也能夠簡單的拷貝sos.dll文件到調試目錄中便可。

Loading SOS

windbg命令窗口中鍵入 .load <path to sos>/sos.dll 來裝載SOS;或經過 .loadby sos mscorwks (將從framework目錄中加載)來加載;也可將sos文件拷貝到windbg的目錄中,只須要鍵入 .load sos 加載

Setting up symbols

符號特徵文件是爲 本地/dotnet 調試充分條件,也能夠查看 本地/dotnet 的堆棧部份內容。能夠查看以下地址查看更多的信息:

http://blogs.msdn.com/tess/archive/2005/12/05/why-do-i-get-weird-function-names-on-my-stack-a-discussion-on-symbols.aspx

能夠在windbg命令行中運行以下命令來設置符號文件路徑:

.symfix c:/mycache

.reload

其中 c:/mycache 是本地符號文件的緩存路徑。若是在windbg中選擇存儲工做空間信息,符號文件也會保存以便下次調試時使用。

Tinyget

「TinyGet 5.2(TinyGet.exe)」 是一個命令行工具,支持多線程和緩衝池的超文本客戶端,可使用 TinyGet 工具來測試、跟蹤使用http的從客戶端到服務端通信。經過 TinyGet ,能夠經過不一樣影響因素來自定義測試請求,包括用戶驗證方法、HTTP 版本和輸出格式。可使用腳本定製循環次數或多線程問題:

查看 http://support.microsoft.com/kb/840671/ 以獲取更多的信息。

熟悉 sos和windbg 命令也是有幫助的,以下的引用文章也是很是有用的:

Install Windbg

Getting started - Part I

Getting started - Part II

Advanced commands

其餘的實驗指南:

實驗指南

實驗過程

.NET Debugging Demos Lab 1: Hang

Walkthrough

.NET Debugging Demos Lab 2: Crash

Walkthrough

.NET Debugging Demos Lab 3: Memory

Walkthrough

.NET Debugging Demos Lab 4: High CPU hang

Walkthrough

.NET Debugging Demos Lab 5: Crash

Walkthrough

.NET Debugging Demos Lab 6: Memory Leak

Walkthrough

.NET Debugging Demos Lab 7: Memory Leak

Walkthrough

相關文章
相關標籤/搜索