Welcome to MSDN Blogs Sign in | Join | Help

Browse by Tags

All Tags » TechEd2008   (RSS)

TechEd2008- .NET 應用程式除錯秘技系列番外篇 - Memory leak

Memory leak, 中文翻譯成"記憶體泄漏"(怪怪的), 用來說明程式因為疏忽或錯誤造成記憶體未能如期的進行釋放。從另一個角度看,就是記憶體的使用不斷的增長(因為沒釋放不再使用的記憶體或釋放的速度不如使用的速度)。有關於系統及應用程式的記憶體相關名詞,可能需要一篇專文來說明。 曾經在網路上聽到一些似是而非的言論~~"聽說呼叫GC回收可以立即釋放沒用到的記憶體~", "可是聽說呼叫GC回收很耗系統資源耶~~"..... 我的建議是~在還沒有搞懂.NET
Posted by Terry Lin | 1 Comments
Filed under: ,

TechEd2008- .NET 應用程式除錯秘技系列(5) - 應用程式沒有回應(Busy Hang)

好久沒有更新了~因為之前休了2個星期的長假。回來又一堆事情等著處理,因此這TechEd 系列的最後一篇一直等到今天才有時間寫。由於在TechEd 2008上面的demo有點複雜,因此我寫了另一支簡化的程式來做為這個busy hang (CPU High)的範例,範例從 這裏 下載。 造成Busy的原因其實不少,包含無窮迴圈啦、過於頻繁的GC回收啦、memory leak...... 都可能會造成busy hang. 今天主要來談無窮迴圈(Infinite loop)所造成的busy hang. 可能很多人會說:
Posted by Terry Lin | 1 Comments
Filed under: ,

TechEd2008 .NET 應用程式除錯秘技系列(4) 應用程式沒有回應(Idle Hang) 下

終於進入到正題囉~馬上來看一下這個Idle Hang的問題如何重現? 重現步驟: 1. 執行應用程式並開啟WinDbg,在WinDbg中直接附加到HangDemo.exe這個process。忘記的請參考 前一篇 文章。 2. 在轉帳旁邊的TextBox輸入一個金額(Ex, 2000),按一下"轉帳"鈕,然後很快的切到"支票轉存款帳戶",再按一次"轉帳" 3. 此時您再去按顯示餘額(無論支票或存款)都會變成灰色且無回應。 4. 這時候我們已經確定應用程式Hang住了~可以回到WinDbg裏,在Debug=>Break或按一下
Posted by Terry Lin | 0 Comments
Filed under: , ,

TechEd2008- .NET 應用程式除錯秘技系列(4) - 應用程式沒有回應(Idle Hang) 上

這個問題的範例請從 這裏 下載,DB 在此 。 在這個範例當中,我們分成2個部份介紹,第一個部份是 - 如何在dump中找出SQL connection string。第二個部份才是介紹如何處理Idle hang的狀況。 在開始debug之前,由於我們要debug的是.NET 的應用程式,因此在WinDbg裏要先啟用CLR Exception的event。方法如下: WinDbg=>Debug=>Event Filters ,在列表中找到CLR Exception並點選右邊的"Enable"。設定好之後就可以開始來Debugging囉~
Posted by Terry Lin | 0 Comments
Filed under: ,

TechEd2008- .NET 應用程式除錯秘技系列(3) - Internet Explorer Crashed

在這個範例裏,會首度介紹WinDbg這個工具(之前有插播Kernel Debugging)。坦白說,在還沒有進微軟之前,我也不曉得有WinDbg這工具(謎之音:就算知道也不懂怎麼用啊~~),一切就在於國內關於這方面知識的介紹實在太少。我想也跟debugging本身並不是一門顯學也有關係。坊間的書大都教大家怎麼寫程式,但很少提到怎麼除錯。而實際上除錯也沒有想像中的簡單,除了對程式語言及邏輯的了解以外,還需要對系統的行為有所了解。 當然,除錯自己的程式總比除錯別人的程式來得容易(尤其是在有source
Posted by Terry Lin | 0 Comments
Filed under: ,

TechEd2008- .NET 應用程式除錯秘技系列(2) - Design Time Exception

故事是這樣的~ 我建立了一個簡單到不行的web 專案, 裏頭只有一個sitemap設定及default page. 在default page中放了一個TreeView控制項。並且將TreeView的DataSource指定為SiteMapDataSource,結果當我要看設計畫面時,一個錯誤噴出了!! 不是應該要出現一個美美的(其實也還好)TreeView,然後顯示各個節點(TreeNode)的資訊嗎? 範例可以在 這裏 下載!!   開發工具本來就是讓我們用來開發除錯的~結果開發工具自己卻出錯(汗...),怎麼來處理這個問題呢?
Posted by Terry Lin | 2 Comments
Filed under: ,

TechEd2008- .NET 應用程式除錯秘技系列(1) - 在VS2008中對.NET Framework source code進行除錯

終於順利講完今年的TechEd, 在課程結束後,有人上講台詢問了相關的問題,其中最多人問到的是 - 在這個場次講到的工具都是公開的嗎? 感覺以前沒有人講過類似的議題..... 是的~除了Visual Studio是需要付費購買的以外,其他介紹到的工具都是可以免費下載的。至於跟debugging 相關的教學資源,在國內的確很少,而即使在國外,也沒有系統化的教材,相關的資源的確比較分散。   主要是因為我認為debugging 並不是一門顯學,進入的門檻也比較高,而真正使用到的場合則是因人而異。如果應用程式是自行開發,對source
Posted by Terry Lin | 1 Comments
Filed under: ,
 
Page view tracker