驱动文件*.sys一般在目录:
C:\Windows\System32\drivers
pc机上每个东西都有驱动,键盘、鼠标、显示器、cpu等等。
没有驱动,这些东西都不能运作,就是一堆废品。
谈一谈windows驱动调试。
使用windbg调试。
一般安装ddk后,就安装了windbg,在目录
C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64里就有了windbg调试工具。
windbg命令分为标准命令,元命令和扩展命令。
准命令提供最基本的调试功能,不区分大小写。如:bp g dt dv k等
元命令提供标准命令没有提供的功能,也内建在调试引擎中,以.开头。如.sympath .reload等;
扩展命令用于扩展某一方面的调试功能,实现在动态加载的扩展模块中,以!开头。如!analyze等;
进入调试状态时,直接回车可重复执行上一条命令;按上下方向键可以浏览和选择以前输入过的命令;
神奇的Tab键,进行命令补全;ESC清除当前命令输入框中的文本;
使用;作为分隔符,可以在同一行输入多条命令;
当命令提示符显示*BUSY*时,即使命令输入框可以输入命令,但输入的命令不会立即被执行,要等windbg空闲时才能执行;
可使用Ctrl + Break来终止一个长时间未完成的命令;
一次可以执行多条命令,命令间用分号 ; 分隔 【 如 :bp main;bp `test.cpp:120`】,一次打2个断点; 为了保证windbg流畅运行,在调试时,尽量不要开启Watch、Locals、Registers、Call Stack、Processes and Threads窗口,直接用command来获取信息;
帮助:
? // 打印出所有标准命令
.help // 打印出所有元命令
.hh // 打开windbg的chm帮助文件
.hh bp // 打开windbg的chm帮助文件bp命令介绍页
command /? // 打印命令command具体参数用法
* // 注释整行
$$ // 注释(遇到分号结束)
.sympath // 查看当前符号查找路径
.sympath c:\symbols // 将符号查找路径设为:c:\symbols
.sympath+ c:\symbols // 将c:\symbols添加到符号查找路径集合中
.symfix // 将符号查找路径设为:SRV*WinDbg安装目录\Sym*http://msdl.microsoft.com/download/symbols
.symfix f:\symbols // 将符号查找路径设为:SRV*f:\symbols*http://msdl.microsoft.com/download/symbols
.symfix+ f:\symbols // 将SRV*f:\symbols*http://msdl.microsoft.com/download/symbols添加到符号查找路径集合中
.srcpath // 查看当前源文件查找路径
.srcpath f:\src // 将源文件查找路径设为:f:\src
.srcpath+ f:\src // 将f:\src添加到源文件查找路径集合中
.exepath // 查看可执行文件查找路径
.exepath f:\bin // 将可执行文件查找路径设为:f:\bin
.exepath+ f:\bin // 将f:\bin添加到可执行文件查找路径集合中