使用WinDbg内核调试
- 首先你要配置好测试环境:参考VMware+Windgb+Win7 内核驱动调试
- 在你的主机上配置Symbols
- 配置sympath,C:\Users\Admin\Desktop\first\objchk_win7_x86\i386是你编译好的sys目录: SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols;C:\Users\Admin\Desktop\first\objchk_win7_x86\i386
- 配置Source search path假设文件放在C:\Users\Admin\Desktop\first]: C:\Users\Admin\Desktop\first
- 然后在命令行中输入:.reload
- 打开源文件:Ctrl+O
- 接着检查是否已经加载sys.dbg,命令为:
kd> !lmi ndislwf
Loaded Module Info: [nt]
Module: ntoskrnl Base Address: 80a02000Symbol Type: PDB – Symbols loaded successfully from symbol server.
d:\DebugSymbols\ndislwf.pdb\EC9B7590D1BB47A6A6D5383538C2B31A1\ntoskrnl.pdb
Compiler: C – front end [13.10 bld 2179] – back end [13.10 bld 2190] Load Report: public symbols
d:\DebugSymbols\ndislwf.pdb\EC9B7590D1BB47A6A6D5383538C2B31A1\ndislwf.pdb - 接着如果出现如上的结果,表明可以手动设置断点,否则(个人经验总是不能设置)。假设在ndislwf 的DriverEntry 设置断点。在启动驱动之前,中断在WinDbg的命令窗口,输入:bu ndislwf!DriverEntry
- 接下来开始安装测试驱动。若执行到DriverEntry该函数,就会停下来,并且会在代码框中对应的代码中用红色标志,然后按F10可以单步调试。
- 如果查看已经设置哪些断点:
kd> bl
0 e [d:\winddk\3790\src\general\ioctl\sys\filter.c @ 123] 0001 (0001) ndislwf!DriverEntry
1 e [d:\winddk\3790\src\general\ioctl\sys\filter.c @ 338] 0001 (0001) ndislwf!SioctlDeviceControl+0×103
注意两件事: 每个断点都有一个号码并且显示出断点状态,“e”是“enabled”,而“d”是“disabled”。假设你希望临时停止使用某个断点。bd (“Disable Breakpoint”) 将会完成它。你只需指定断点号码:
kd> bd 1
kd> bl
0 e [d:\winddk\3790\src\general\ioctl\sys\filter.c @ 123] 0001 (0001) ndislwf!DriverEntry
1 d [d:\winddk\3790\src\general\ioctl\sys\filter.c @ 338] 0001 (0001) ndislwf!SioctlDeviceControl+0×103 ·
相似的方法,永久移除断点号码,使用bc 1 (“Clear Breakpoint”)。现在该断点将会从断点列表中消除。
假设你希望临时停止使用某 个断点。bd (“Disable Breakpoint”) 将会完成它。你只需指定断点号码:
kd> bd 1
kd> bl
0 e [d:\winddk\3790\src\general\ioctl\sys\sioctl.c @ 123] 0001 (0001) SIoctl!DriverEntry
1 d [d:\winddk\3790\src\general\ioctl\sys\sioctl.c @ 338] 0001 (0001) SIoctl!SioctlDeviceControl+0×103
- · 相似的方法,永久移除断 点号码,使用bc 1 (“Clear Breakpoint”)。现在该断点将会从断点列表中消除。
使用WinDbg内核调试的更多相关文章
- Windbg内核调试之四: Dump文件分析
Dump 文件分析很大程度上就是分析蓝屏产生的原因.这种系统级的错误算是Windows提示错误中比较严重的一种(更严重的还有启动黑屏等硬件或软件兼容性错误等等).说它是比较严重,是因为毕竟Window ...
- 使用WinDbg内核调试[转]
Technorati 标签: windbg,内核调试 WINDOWS调试工具很强大,但是学习使用它们并不容易.特别对于驱动开发者使用的WinDbg和KD这两个内核调试器(CDB和NTSD是用户态调试器 ...
- Windbg内核调试之三: 调试驱动
这次我们通过一个实际调试驱动的例子,来逐步体会Windbg在内核调试中的作用.由于条件所限,大多数情况下,很多人都是用VMware+Windbg调试内核(VMware的确是个好东西).但这样的调试需要 ...
- Windbg内核调试之一: Vista Boot Config设置
Windbg进行内核调试,需要一些基本的技巧和设置,在这个系列文章中,我将使用Windbg过程中所遇到的一些问题和经验记录下来,算是对Kernel调试的一个总结,同时也是学习Windows系统内核的另 ...
- Windbg内核调试之二: 常用命令
运用Windbg进行内核调试, 熟练的运用命令行是必不可少的技能. 但是面对众多繁琐的命令, 实在是不可能全部的了解和掌握. 而了解Kernel正是需要这些命令的指引, 不断深入理解其基本的内容. 下 ...
- 关于内核调试(Windbg)的虚拟机配置问题
注:本文配置 环境为VMware® Workstation11.1.2 build-2780323+Windows xp SP2+Windbg 6.12.0002.63 x86 *在win7以后的操作 ...
- xp+WinDBG+VMware调试内核
呵呵,搞点突兀的标题而已.其实说的还是如何使用WinDBG和VMware来搭建调试内核的环境而已,这些网上已经有数不清的教程了,不过我喜欢自己亲手写一下.第一,把这个过程写一遍能加深印象,就算以后忘记 ...
- 【旧文章搬运】Windbg+Vmware驱动调试入门(四)---VirtualKD内核调试加速工具
原文发表于百度空间,2009-01-09========================================================================== 今天又想起 ...
- Windbg程序调试--转载
WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件. WinDbg是微软很重要的诊断调试工具: 可以查 ...
随机推荐
- remap.config文件配置模板
# # URL Remapping Config File # # Using remap.config allows you to accomplish two things: # # 1) Rew ...
- 关键字voltale
***volatile在多线程用的最多.*** #include<stdio.h> #include<stdlib.h> int main() { ; i < ; i++ ...
- 用ASOS建立自定义的OpenID 服务(一)-----------简介
翻译文章 原文地址 这一系列共包括9个部分,这是第一部分,下面是英文原文地址: Introduction Choosing the right flow(s) Registering the midd ...
- 关于document.body.scrollTop与documentElement.scrollTop
遇到document.body.scrollTop值为0的问题 今天在写一个小demo的时候,使用滚动条,我用document.body.scrollTop获取滚动条的位置,但是很奇怪的发现在谷歌上获 ...
- CentOS7安装MySQL的方法之通用二进制格式
CentOS7安装MySQL的方法之通用二进制格式
- hdu 5909 Tree Cutting [树形DP fwt]
hdu 5909 Tree Cutting 题意:一颗无根树,每个点有权值,连通子树的权值为异或和,求异或和为[0,m)的方案数 \(f[i][j]\)表示子树i中经过i的连通子树异或和为j的方案数 ...
- Redis进阶实践之十一 Redis的Cluster集群搭建
一.引言 本文档只对Redis的Cluster集群做简单的介绍,并没有对分布式系统的详细概念做深入的探讨.本文只是提供了有关如何设置集群.测试和操作集群的说明,而不涉及Redis集群规范中涵 ...
- LeetCode - 596. Classes More Than 5 Students
There is a table courses with columns: student and class Please list out all classes which have more ...
- C#小笔记:单例模式
双重锁定: public class Singleton { private static Singleton instance; private static readonly object syn ...
- Windows 系统下安装 dig 命令
dig是一个Linux下用来DNS查询信息的小工具,dig全称是Domain Information Groper,与nslookup类似,但比nslookup功能更强大.Windows只有nsloo ...