天天看點

應用程式調試技術視訊各集技術概述

這是第一部分,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  ,如需轉載請自行聯系原作者