[编程语言] 软件调试纵横谈28节

全部封锁
阅读

本课程纵览软件调试的整个“生态系统”,从CPU、操作系统、编译器和调试器四个纵向层次上对Windows和Linux平台上的调试设施和方法展开横向比较,从调试角度审视Windows,Linux,GCC,Visual Studio,GDB和WinDBG等著名平台和工具,既有深度,又有广度。整个课程理论讲解和实验演示紧密结合

第一部分:CPU的调试支持

序言

概览和软件断点

硬件断点、陷阱和

第二部分:操作系统的调试支持

概览和内核调试

内核调试演示

用户态调试原理

应用程序调试原理——

操作系统的异常分发过程

结构化异常处理(SEH)演示

未处理异常:默认过滤器和JIT调试

第三部分:编译器的调试支持

调试符号

第四部分:调试器

用户态调试器原理和调试事件

精要[上]:设置路径

精要[中]:表达式和硬件断点

精要[下]:远程调试

第五部分:应用程序崩溃和用户态转储

信息输出、ETW和

转储、轨迹追踪、WER和

第六部分:栈调试

栈的自动增长、栈帧

栈上的缓冲区溢出、溢出攻击

基于Cookie的安全检查(GS机制

内核态栈

第七部分:堆调试

堆概要

堆的调试支持

页堆

堆的调试支持

和应用验证器

第八部分:多线程调试

线程与进程

临界区与调试支持

死锁和死循环

案例和互锁机制

第九部分:内核调试

内核调试概要

使用KD理解内核

双机用户态调试

第十部分:高级调试技巧

调试事件、调试会话中的服务和总结

阅读
本文由用户上传,如有侵权请联系删除!

撰写回复
更多知识