从事Windows应用软件开发和测试的软件工程师、项目带头人和技术经理
| 课程编号 | 开课日期 | 地点 | 培训天数 | 选择报名 |
从事Windows应用软件开发和测试的软件工程师、项目带头人和技术经理
时间地点:北京 2013年4月26-28日
课程费用:5000元/人
课程对象:从事Windows应用软件开发和测试的软件工程师、项目带头人和技术经理
培训目标:
Windows系统基础
WinDBG精要
应用程序崩溃和转储
栈调试
多线程调试
堆调试
可调试性
使用WPT调优
高级调试技巧
课程大纲:
Windows系统基础 概述Windows操作系统的架构
系统组件
HAL
内核
执行体
Native进程
子系统
重要的系统机制
内核服务调用
中断管理
内核对象
主要数据结构
进程
线程
内核对象
设备对象
虚拟内存、进程、线程、操作系统的用户和内核空间等重要概念
WinDBG精要 系统介绍 WinDBG的发展历史、架构、组件构造
关键使用方法,包括命令类型、表达式
常用的调试命令
涵盖符号设置
用户态调试和内核态调试
远程调试
实验1: WinDBG基础 ( 15 min )
应用程序崩溃和转储 Windows分发异常的详细过程
应用程序崩溃的内幕和调试方法(JIT调试)
转储的基本知识
如何使用ADPLUS自动产生用户态转储
分析用户态转储的常用命令和技巧
实验2: 异常处理和JIT调试 ( 15 min )
栈调试 详细介绍栈的自动增长机制
栈帧的组织方法
并通过实例演示栈溢出攻击的原理,
通过Windows 7系统的真实案例介绍基于Cookie的溢出检测机制
多线程调试 如何使用WinDBG来调试多线程程序和同时调试多个进程
控制线程执行状态
观察同步对象
分析死锁等
多核和多处理器系统中的各种同步机制
比较不同同步机制的优劣
堆调试 调试内存有关的典型问题的方法和技巧
使用CRT堆和Win32堆的调试支持
分析内存泄漏
访问违例
栈溢出
在探讨实践经验的同时会穿插重要的理论知识
Win32对和CRT堆的结构
内存管理常识和用户态调试器的基本工作原理
实验3: 使用UMDH来寻找内存泄漏 ( 15 min )
可调试性 Windows系统的诊断设施(WDI)的工作原理
探讨如何在软件工程实践中提高软件的可调试性
可观察性
可辨别性
可追溯性
自动报告错误
使用WPT调优 介绍ETW (Event Tracing for Windows) 机制的原理
ETW在Windows系统中的重要地位
演示如何使用Windows Performance Toolkit (WPT) 来发现应用程序的热点和瓶颈,涵盖常用的有关工具,包括xperf, xbootmgr, xperfview等
高级调试技巧 定制调试事件的处理方式以便得到更早的调试时机
通过特殊的调试会话调试自动启动的进程和关键的系统进程
程序指针飞跃
在调试器中调用函数和修改代码
设置复杂的条件断点
讲师介绍:张老师--著有《软件调试》,Intel研发中心资深程序员、业内资深工程师、内核调试专家。。
张老师——著有《软件调试》,Intel研发中心资深程序员、业内资深工程师、内核调试专家。
《软件调试》一书的作者。毕业于上海交通大学信息与控制工程系,长期从事软件开发和研究工作,对 IA-32 架构、操作系统内核、驱动程序、尤其是软件调试有较深入研究。从2005年开始公开讲授“操作系统内核及高级调试”课程,曾在微软技术会议上做过《Windows内核演进》、《调试之剑》(2008年中国软件技术大会)、《感受和思考调试器的威力》(CSDN SD2.0大会)、《操作系统启动过程》、《如何诊断和调试蓝屏错误》、《操作系统体系结构》。翻译(合译)作品有《观止——微软创建NT和未来的夺命狂奔》、《数据挖掘原理》、《机器学习》、《人工智能:复杂问题求解的结构和策略》等。