Windows應(yīng)用程序高級調(diào)試培訓(xùn)
Windows應(yīng)用程序高級調(diào)試培訓(xùn)
?
??
培訓(xùn)目標(biāo):
?
Windows系統(tǒng)基礎(chǔ)
WinDBG精要
應(yīng)用程序崩潰和轉(zhuǎn)儲
棧調(diào)試
多線程調(diào)試
堆調(diào)試
可調(diào)試性
使用WPT調(diào)優(yōu)
高級調(diào)試技巧
培訓(xùn)內(nèi)容:
Windows系統(tǒng)基礎(chǔ)
概述Windows操作系統(tǒng)的架構(gòu)
系統(tǒng)組件
HAL
內(nèi)核
執(zhí)行體
Native進(jìn)程
子系統(tǒng)
重要的系統(tǒng)機(jī)制
內(nèi)核服務(wù)調(diào)用
中斷管理
內(nèi)核對象
主要數(shù)據(jù)結(jié)構(gòu)
進(jìn)程
線程
內(nèi)核對象
設(shè)備對象
虛擬內(nèi)存、進(jìn)程、線程、操作系統(tǒng)的用戶和內(nèi)核空間等重要概念
WinDBG精要
系統(tǒng)介紹 WinDBG的發(fā)展歷史、架構(gòu)、組件構(gòu)造
關(guān)鍵使用方法,包括命令類型、表達(dá)式
常用的調(diào)試命令
涵蓋符號設(shè)置
用戶態(tài)調(diào)試和內(nèi)核態(tài)調(diào)試
遠(yuǎn)程調(diào)試
實驗1: WinDBG基礎(chǔ)
應(yīng)用程序崩潰和轉(zhuǎn)儲
Windows分發(fā)異常的詳細(xì)過程
應(yīng)用程序崩潰的內(nèi)幕和調(diào)試方法(JIT調(diào)試)
轉(zhuǎn)儲的基本知識
如何使用ADPLUS自動產(chǎn)生用戶態(tài)轉(zhuǎn)儲
分析用戶態(tài)轉(zhuǎn)儲的常用命令和技巧
實驗2: 異常處理和JIT調(diào)試
棧調(diào)試
詳細(xì)介紹棧的自動增長機(jī)制
棧幀的組織方法
并通過實例演示棧溢出攻擊的原理,
通過Windows 7系統(tǒng)的真實案例介紹基于Cookie的溢出檢測機(jī)制
多線程調(diào)試
如何使用WinDBG來調(diào)試多線程程序和同時調(diào)試多個進(jìn)程
控制線程執(zhí)行狀態(tài)
觀察同步對象
分析死鎖等
多核和多處理器系統(tǒng)中的各種同步機(jī)制
比較不同同步機(jī)制的優(yōu)劣
堆調(diào)試
調(diào)試內(nèi)存有關(guān)的典型問題的方法和技巧
使用CRT堆和Win32堆的調(diào)試支持
分析內(nèi)存泄漏
訪問違例
棧溢出
在探討實踐經(jīng)驗的同時會穿插重要的理論知識
Win32對和CRT堆的結(jié)構(gòu)
內(nèi)存管理常識和用戶態(tài)調(diào)試器的基本工作原理
實驗3: 使用UMDH來尋找內(nèi)存泄漏
可調(diào)試性
Windows系統(tǒng)的診斷設(shè)施(WDI)的工作原理
探討如何在軟件工程實踐中提高軟件的可調(diào)試性
可觀察性
可辨別性
可追溯性
自動報告錯誤
使用WPT調(diào)優(yōu)
介紹ETW (Event Tracing for Windows) 機(jī)制的原理
ETW在Windows系統(tǒng)中的重要地位
演示如何使用Windows Performance Toolkit (WPT) 來發(fā)現(xiàn)應(yīng)用程序的熱點和瓶頸,涵蓋常用的有關(guān)工具,包括xperf, xbootmgr, xperfview等
高級調(diào)試技巧
定制調(diào)試事件的處理方式以便得到更早的調(diào)試時機(jī)
通過特殊的調(diào)試會話調(diào)試自動啟動的進(jìn)程和關(guān)鍵的系統(tǒng)進(jìn)程
程序指針飛躍
在調(diào)試器中調(diào)用函數(shù)和修改代碼
設(shè)置復(fù)雜的條件斷點
?
?