Welcome to MSDN Blogs
Sign in
|
Join
|
Help
Terry Lin's Blog
This Blog
Syndication
RSS 2.0
Atom 1.0
Search
Tags
.NET
Debugging
General
Info
TechEd2008
Archives
March 2009 (1)
November 2008 (2)
October 2008 (4)
September 2008 (5)
Browse by Tags
All Tags
»
TechEd2008
(RSS)
.NET
Debugging
Wednesday, November 12, 2008 5:06 PM
TechEd2008- .NET 應用程式除錯秘技系列番外篇 - Memory leak
Memory leak, 中文翻譯成"記憶體泄漏"(怪怪的), 用來說明程式因為疏忽或錯誤造成記憶體未能如期的進行釋放。從另一個角度看,就是記憶體的使用不斷的增長(因為沒釋放不再使用的記憶體或釋放的速度不如使用的速度)。有關於系統及應用程式的記憶體相關名詞,可能需要一篇專文來說明。 曾經在網路上聽到一些似是而非的言論~~"聽說呼叫GC回收可以立即釋放沒用到的記憶體~", "可是聽說呼叫GC回收很耗系統資源耶~~"..... 我的建議是~在還沒有搞懂.NET
Posted by
Terry Lin
|
1 Comments
Filed under:
TechEd2008
,
Debugging
Monday, November 10, 2008 5:23 PM
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
,
Debugging
Friday, October 10, 2008 2:41 AM
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:
.NET
,
TechEd2008
,
Debugging
Thursday, October 09, 2008 1:48 AM
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
,
Debugging
Saturday, October 04, 2008 11:28 PM
TechEd2008- .NET 應用程式除錯秘技系列(3) - Internet Explorer Crashed
在這個範例裏,會首度介紹WinDbg這個工具(之前有插播Kernel Debugging)。坦白說,在還沒有進微軟之前,我也不曉得有WinDbg這工具(謎之音:就算知道也不懂怎麼用啊~~),一切就在於國內關於這方面知識的介紹實在太少。我想也跟debugging本身並不是一門顯學也有關係。坊間的書大都教大家怎麼寫程式,但很少提到怎麼除錯。而實際上除錯也沒有想像中的簡單,除了對程式語言及邏輯的了解以外,還需要對系統的行為有所了解。 當然,除錯自己的程式總比除錯別人的程式來得容易(尤其是在有source
Posted by
Terry Lin
|
0 Comments
Filed under:
TechEd2008
,
Debugging
Sunday, September 28, 2008 12:58 PM
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
,
Debugging
Sunday, September 28, 2008 12:55 AM
TechEd2008- .NET 應用程式除錯秘技系列(1) - 在VS2008中對.NET Framework source code進行除錯
終於順利講完今年的TechEd, 在課程結束後,有人上講台詢問了相關的問題,其中最多人問到的是 - 在這個場次講到的工具都是公開的嗎? 感覺以前沒有人講過類似的議題..... 是的~除了Visual Studio是需要付費購買的以外,其他介紹到的工具都是可以免費下載的。至於跟debugging 相關的教學資源,在國內的確很少,而即使在國外,也沒有系統化的教材,相關的資源的確比較分散。 主要是因為我認為debugging 並不是一門顯學,進入的門檻也比較高,而真正使用到的場合則是因人而異。如果應用程式是自行開發,對source
Posted by
Terry Lin
|
1 Comments
Filed under:
TechEd2008
,
Debugging