应用程序调试技术视频各集技术概述

本系列视频讲座深入探讨了Windows平台下应用程序调试技术,包括准备调试环境、管理符号文件与源代码、VisualStudio基本调试技术、Windbg基本功能介绍、调试栈溢出问题、调试堆溢出问题、调试资源泄露问题、调试多线程问题、内核调试与托管程序调试准备工作、CLR虚拟机及托管调试命令、调试其他工具、验尸调试以及Windbg调试自动化等全面的技术细节。

这是第一部分,Windows平台下的应用程序调试技术讲座视频,视频购买地址:

http://product.china-pub.com/3502590

1讲准备调试环境

  调试符号文件的作用;
  创建符号文件的方法;
  在调试器里有无符号文件的区别;
  公开符号版本和私有符号版本的区别;
  创建公开符号文件的方法;
  了解符号文件服务器的作用;
  掌握在Visual Studio以及Windbg里使用符号文件的方法;
  了解无法调试程序时的排错步骤。

2讲管理符号文件与源代码

  创建符号文件服务器;
  调试时集成符号文件服务器和源代码版本控制服务器,以便调试时,调试机不需要有程序的源代码,调试器会自动从源代码服务器上下载正确的版本。讲解了集成SVN和Visual SourceSafe两种版本服务器的方法,这样方便一个大型研发团队进行每日编译(daily build)式的开发测试环境。如果跟第26讲(验尸调试)结合来看的话,甚至可以在团队局域网内部建立一个自动的BUG收集服务器,跟符号服务器、源码服务器配合组成一个随时随地的BUG跟踪和分析系统。


3Visual Studio基本调试技术

断点的实现原理;
条件断点以及跟踪断点;
函数断点以及异常断点;
原生程序设置数据断点;
VS提供的各个调试窗口简介;
调试浮点数计算错误的方法。

4Visual Studio调试技术中

在程序启动和异常终止时附加调试器;
设置远程调试;
使用RPC调试功能同时调试COM程序的客户端和服务器端;
在立即窗口里调试刚刚写好的函数;
SQL调试技术,即在ASP.NET网站或者ADO.NET程序中,单步跟进数据库存储过程等一系列数据库调试技巧。

5Visual Studio自动化调试及并行调试

在C++和.NET程序里添加调试支持,方便调试器在调试的时候收集信息;
使用Visual Studio的自动化接口编写自动化调试脚本;
调试并行代码,分析性能瓶颈

6Windbg基本功能介绍

作业讲解里有调试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的方法,以及设置源代码调试的步骤

18CLR虚拟机及托管调试命令-应用程序域和装配件

讲解应用程序域(AppDomain)的知识以及它的使用场景

讲解装配件(Assembly)的知识

讲解在调试器里查看AppDomain和Assembly信息的方法

讲解在Assembly里混合C#、VB.NET以及Managed C++代码的方法,以及调试这种模块的方法

19CLR虚拟机及托管调试命令-对象

讲解对象(Object)在.NET虚拟机里的实现方式

讲解在调试器里查看托管对象、数组内存布局的方法

讲解查看堆栈的方法


20CLR虚拟机及托管调试命令-类型

讲解类型(Type)、泛型(Generics)和函数(Method)在.NET虚拟机里的实现方式

讲解在调试器里查看类型和函数内存布局以及信息的方法

讲解在windbg里调试托管程序设置断点的方法

21CLR虚拟机及托管调试命令-线程

讲解线程在.NET虚拟机里的实现方式

讲解在调试器里查看线程信息的方法

讲解线程同步在.NET虚拟机里的实现方式,以及在调试器里查看同步信息的方法

讲解线程池的实现方式以及在调试器里查看相关信息的方法

22CLR虚拟机及托管调试命令-GC

讲解垃圾回收(GC)在.NET虚拟机里的实现方式;

查看GC相关信息的方法

解释Close和Dispose函数的实现与区别

讲解弱引用对象的原理和使用方法

.NET里的内存管理技巧

23CLR虚拟机及托管调试命令-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执行验尸调试的办法

设置企业内部用的自动收集错误报告服务器的方法。

27Windbg调试自动化

使用windbg提供的脚本语言编写调试用脚本程序的方法,实现自动化的程序调试。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值