×

调试USB驱动程序时遇到的问题

hqy hqy 发表于2025-01-22 16:03:59 浏览2 评论0

抢沙发发表评论

windbg实现双机调试平台搭建

  前提是,有两台真机,目标机是WinXp,调试机是win7,它们通过串口连接,波特率115200.

在目标机上修改配置设置文件boot.ini

 注意在修改boot.ini文件之前,要去掉它的只读属性.
 然后用记事本打开文件后,添加一行选项,内容为
 multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=”Microsoft Windows XP Professional - debug” /fastdetect /debugport=com1 /baudrate=115200
 然后再把timeout=0修为timeout=10,作用是启动系统时后有时间作出选择.
 实际文件内容为

[boot loader]
  timeout=10
  default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
  [operating systems]
  multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
  multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional - debug" /fastdetect /debugport=com1 /baudrate=115200
调试机端

  1. 安装windbg软件
  2.为windbg创建一个桌面快捷方式,打开属性,修改目标为”C:\Program Files\Debugging Tools for Windows (x86)\windbg.exe” -b -k com:port=com1,baud=115200
  3.打开windbg的快捷方式,此时调试器处于等待状态.等待串口收到正确的信息.

进入调试

  注意在开始调试之前,建议两台真机先用串口调试助手测试一下串口通信是否正常.
  打开目标机,进入系统选项时,选调试模式就可以了.
  此时调试机端,windbg从串口接收到了正确的信号后,发出了中断指令,使目标机中断.执行g命令后,目标继续启动.

一般的调试过程

  要调试驱动程序,调试机端需提前准好两样东西.一是驱动程序的符号文件即pdb文件,二是源码.
  在windbg中设置好符号文件路径和源码文件路径.
  然后一个一个打开需要下断点的源码,在代码中下断点,也可以通过命令下断点,比如bp driver!DriverEntry
windbg命令很多,调试技术很深,需要不断学习和使用才能掌握.

安装驱动程序时,遇到失败,提示这个INF中的服务安装段落无效

  打开c:\windows\setupapi.log这个日志文件
  找到这样一行,

mportant;">

错误 0xe0000217:这个INF中的服务安装段落无效.

  在它的上一行发现这样一行,
  

添加服务: 服务 “SvcDesc” 的二进制文件 “C:\WINDOWS\system32\DRIVERS\driver.sys”
不存在.

  这说明inf文件中CopyFiles节,复制文件由于某种原因没有成功.于手动把sys文件复到c:\windows\system32\drivers,然后再安装就成功了.
  

驱动程序中代码的毛病,设备管理器中有感叹号,无法启动.

  1.驱动程序首先编译是成功的,没有问题.
  2.安装成功了,也没有问题.
  所以需要调试代码.
  发现DriverEntry例程进入正常.
  AddDevice例程进入正常.
  PnpIrp例程进入正常.但得到的MinorFunction总是IRP_MN_REMOVE_DEVICE,所以启动不起来.
  然后在AddDevice例程中发现可疑点,在创建符号链接时,返回码不成功.

ntStatus = IoCreateSymbolicLink (&UserDeviceLinkUnicode,
&KernelDeviceNameUnicode);

  原来发现定义符号链接的名称需要以L”\dosDevices\”开头,而我的代码写成了L”\dosDevice\,少了个s,所以出错了.
  修正后,设备启动正常了.


打赏

本文链接:https://www.kinber.cn/post/4724.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客