這是第一部分,Windows平台下的應用程式調試技術講座視訊, 視訊購買位址:
第1講 準備調試環境
調試符号檔案的作用;
建立符号檔案的方法;
在調試器裡有無符号檔案的差別;
公開符号版本和私有符号版本的差別;
建立公開符号檔案的方法;
了解符号檔案伺服器的作用;
掌握在Visual Studio以及Windbg裡使用符号檔案的方法;
了解無法調試程式時的排錯步驟。
第2講 管理符号檔案與源代碼
建立符号檔案伺服器;
調試時內建符号檔案伺服器和源代碼版本控制伺服器,以便調試時,調試機不需要有程式的源代碼,調試器會自動從源代碼伺服器上下載下傳正确的版本。講解了內建SVN和Visual SourceSafe兩種版本伺服器的方法,這樣友善一個大型研發團隊進行每日編譯(daily build)式的開發測試環境。如果跟第26講(驗屍調試)結合來看的話,甚至可以在團隊區域網路内部建立一個自動的BUG收集伺服器,跟符号伺服器、源碼伺服器配合組成一個随時随地的BUG跟蹤和分析系統。
第3講 Visual Studio基本調試技術
斷點的實作原理;
條件斷點以及跟蹤斷點;
函數斷點以及異常斷點;
原生程式設定資料斷點;
VS提供的各個調試視窗簡介;
調試浮點數計算錯誤的方法。
第4講 Visual Studio調試技術中
在程式啟動和異常終止時附加調試器;
設定遠端調試;
使用RPC調試功能同時調試COM程式的用戶端和伺服器端;
在立即視窗裡調試剛剛寫好的函數;
SQL調試技術,即在ASP.NET網站或者ADO.NET程式中,單步跟進資料庫存儲過程等一系列資料庫調試技巧。
第5講 Visual Studio自動化調試及并行調試
在C++和.NET程式裡添加調試支援,友善調試器在調試的時候收集資訊;
使用Visual Studio的自動化接口編寫自動化調試腳本;
調試并行代碼,分析性能瓶頸
第6講 Windbg 基本功能介紹
作業講解裡有調試WPF程式,分析WPF程式性能瓶頸的方法;
Windbg的基本調試指令講解,設定斷點,加載符号檔案,檢視記憶體等基本指令
第7講 調試棧溢出問題(上)
第8講調試棧溢出問題(下)
兩個視訊是連續的。
從彙編的角度以及實際函數調用過程講解了棧的實作,以及調用函數時的建立棧和釋放棧的過程;
記憶體溢出問題的調查步驟;
棧溢出病毒攻擊的原理;
調試棧溢出問題的方法;
C++各種調用規範(Calling Convention)的講解以及相關函數調用示範;
在.NET裡調用使用不同調用規範的函數;
調用規範不比對導緻棧溢出的調查方法;
防範棧溢出的措施。
第9講調試堆溢出問題(上)
第10講調試堆溢出問題(中)
第11講調試堆溢出問題(下)
三個視訊是連續的
CRT調試堆的實作;
使用CRT調試堆檢查堆溢出問題 ;
從系統核心的角度講解Windows記憶體堆的實作,以及示範堆裡面記憶體的配置設定和釋放過程;
堆溢出的原理講解
調試堆溢出的方法
調試釋放記憶體時使用了錯誤的堆句柄這個錯誤的方法
調試使用未初始化記憶體問題的方法
第12講調試資源洩露問題(上)
第13講調試資源洩露問題(下)
兩個視訊是連續的
調試堆記憶體洩露這個很常見的程式設計錯誤
調試程序内和程序間句柄洩露的方法
在MFC裡檢查記憶體洩露的辦法
調試JavaScript裡記憶體洩露
第14講調試多線程問題(上)
第15講調試多線程問題(下)
調試多線程間資料競争的問題
在多線程裡添加調試支援
調試使用者态線程同步死鎖問題
調試核心态線程同步死鎖問題
調試競争鎖資源問題
調試使用CPU資源過多的問題
多線程程式設計的注意事項
第16講核心調試與托管程式調試準備工作(上)
調試Windows核心的方法,以及設定源代碼級核心調試的方法
第17講核心調試與托管程式調試準備工作(下)
在windbg裡調試.NET程式的方法及原理
在windbg裡調試.NET虛拟機CLR的方法,以及設定源代碼調試的步驟
第18講CLR虛拟機及托管調試指令-應用程式域和裝配件
講解應用程式域(AppDomain)的知識以及它的使用場景
講解裝配件(Assembly)的知識
講解在調試器裡檢視AppDomain和Assembly資訊的方法
講解在Assembly裡混合C#、VB.NET以及Managed C++代碼的方法,以及調試這種子產品的方法
第19講CLR虛拟機及托管調試指令-對象
講解對象(Object)在.NET虛拟機裡的實作方式
講解在調試器裡檢視托管對象、數組記憶體布局的方法
講解檢視堆棧的方法
第20講CLR虛拟機及托管調試指令-類型
講解類型(Type)、泛型(Generics)和函數(Method)在.NET虛拟機裡的實作方式
講解在調試器裡檢視類型和函數記憶體布局以及資訊的方法
講解在windbg裡調試托管程式設定斷點的方法
第21講CLR虛拟機及托管調試指令-線程
講解線程在.NET虛拟機裡的實作方式
講解在調試器裡檢視線程資訊的方法
講解線程同步在.NET虛拟機裡的實作方式,以及在調試器裡檢視同步資訊的方法
講解線程池的實作方式以及在調試器裡檢視相關資訊的方法
第22講CLR虛拟機及托管調試指令-GC
講解垃圾回收(GC )在.NET虛拟機裡的實作方式;
檢視GC相關資訊的方法
解釋Close和Dispose函數的實作與差別
講解弱引用對象的原理和使用方法
.NET裡的記憶體管理技巧
第23講CLR虛拟機及托管調試指令-COM互操作與異常
解釋COM對象與.NET互操作的原理
解釋.NET異常的實作原理
從.NET裡使用COM對象的方法
從COM裡使用.NET對象的方法
調試在.NET程式裡使用COM對象出現問題時的方法
第24講托管調試其他工具(上)
講解sosex指令的使用方法
調試.NET程式死鎖的方法
調試.NET程式記憶體使用過多的方法,以及調試.NET程式記憶體的其他一些問題。
第25講托管調試其他工具(下)
講解psscor指令的使用方法
調試ASP.NET頁面通路速度過慢的問題
示範ASP.NET緩存的使用方法
調試因使用ASP.NET緩存而導緻記憶體不夠的問題的方法
調試調用web服務出現OOM異常的方法
第26講驗屍調試
講解驗屍調試的原理,以及使用Visual studio、Windbg以及Adplus執行驗屍調試的辦法
設定企業内部用的自動收集錯誤報告伺服器的方法。
第27講Windbg調試自動化
使用windbg提供的腳本語言編寫調試用腳本程式的方法,實作自動化的程式調試。
本文轉自 donjuan 部落格園部落格,原文連結: http://www.cnblogs.com/killmyday/archive/2012/03/01/2375130.html ,如需轉載請自行聯系原作者